diff --git a/modules/file/file.field.inc b/modules/file/file.field.inc index 6a8442e..a1b6b00 100644 --- a/modules/file/file.field.inc +++ b/modules/file/file.field.inc @@ -215,9 +215,15 @@ function file_field_presave($entity_type, $entity, $field, $instance, $langcode, // Make sure that each file which will be saved with this object has a // permanent status, so that it will not be removed when temporary files are // cleaned up. - foreach ($items as $item) { - $file = file_load($item['fid']); - if (!$file->status) { + foreach ($items as $delta => $item) { + $file = FALSE; + if(!empty($item['fid'])) { + $file = file_load($item['fid']); + } + if ($file === FALSE) { + unset($items[$delta]); + } + else if(!$file->status) { $file->status = FILE_STATUS_PERMANENT; file_save($file); } @@ -231,9 +237,14 @@ function file_field_insert($entity_type, $entity, $field, $instance, $langcode, list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity); // Add a new usage of each uploaded file. - foreach ($items as $item) { - $file = (object) $item; - file_usage_add($file, 'file', $entity_type, $id); + foreach ($items as $delta => $item) { + if (!empty($item['fid'])) { + $file = (object) $item; + file_usage_add($file, 'file', $entity_type, $id); + } + else { + unset($items[$delta]); + } } }