diff --git a/mappers/filefield.inc b/mappers/filefield.inc index 1e8c59f..caf0012 100644 --- a/mappers/filefield.inc +++ b/mappers/filefield.inc @@ -56,8 +56,19 @@ function filefield_feeds_set_target($node, $field_name, $value) { } } + // Clear existing values from the node. + if (!empty($node->$field_name)) { + foreach ($node->$field_name as $file) { + // Delete the file. + file_delete($file['filepath']); + // Remove the entry from the {files} table. + db_query('DELETE FROM {files} WHERE fid=%d', $file['fid']); + } + } + $node->$field_name = array(); + // Map enclosures. - $items = isset($node->$field_name) ? $node->$field_name : array(); + $items = array(); foreach ($enclosures as $enclosure) { if ($file = $enclosure->getFile()) { $field = content_fields($field_name, $node->type);