--- plugins/file.inc +++ 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'];