From 64a46f92e85d8940610e5be28af874c9a2a0e61b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Garn=C3=A6s?= Date: Fri, 30 Sep 2011 12:51:39 +0200 Subject: [PATCH] Encode file data using Base64 --- plugins/file.inc | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/file.inc b/plugins/file.inc index 4aa7298..4f00e51 100644 --- a/plugins/file.inc +++ b/plugins/file.inc @@ -20,7 +20,7 @@ function file_export_alter(&$node) { $imgfile = drupal_realpath($item['uri']); if($imgfile && ($handle = fopen($imgfile, "rb")) && (filesize($imgfile) >0)) { $imgbinary = fread($handle, filesize($imgfile)); - $node->{$field_name}[$lang][$key]['image'] = $imgbinary; + $node->{$field_name}[$lang][$key]['image'] = base64_encode($imgbinary); } $filename = $node->{$field_name}[$lang][$key]['filename']; $node->{$field_name}[$lang][$key]['uri'] = "public://$filename"; @@ -58,7 +58,13 @@ function file_import_alter(&$node) { if (!empty($fids) && isset($fids[0]) && is_object($fids[0])) { file_delete($fid[0]); } - $file = file_save_data($item['image'], $item['uri']); + // Decode image data. Older versions exported binary data + // so if this fails we asume that is the reason. + $data = base64_decode($item['image']); + if (!$data) { + $data = $item['image']; + } + $file = file_save_data($data, $item['uri']); if ($field['type'] == 'image') { $file->alt = $item['alt']; $file->title = $item['title']; -- 1.7.5.4+GitX