Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function file_save

Saves a file object to the database.

If the $file->fid is not set a new record will be added.

Parameters

$file: A file object returned by file_load().

Return value

The updated file object.

See also

hook_file_insert()

hook_file_update()

Related topics

File interface
Common file handling functions.
13 calls to file_save()
EntityCrudHookTestCase::testFileHooks in modules/simpletest/tests/entity_crud_hook_test.test
Tests hook invocations for CRUD operations on files.
FileFieldTestCase::createTemporaryFile in modules/file/tests/file.test
Creates a temporary file, for a specific user.
FileSaveTest::testFileSave in modules/simpletest/tests/file.test
file_copy in includes/file.inc
Copies a file to a new location and adds a file record to the database.
file_field_presave in modules/file/file.field.inc
Implements hook_field_presave().

... See full list

File

includes/file.inc, line 626

Code

function file_save (stdClass $file) {
 $file->timestamp = REQUEST_TIME ;
 $file->filesize = filesize ($file->uri );
 // Load the stored entity, if any.
 if (!empty($file->fid) && !isset($file->original)) {
 $file->original = entity_load_unchanged ('file', $file->fid);
 }
 module_invoke_all ('file_presave', $file);
 module_invoke_all ('entity_presave', $file, 'file');
 if (empty($file->fid)) {
 drupal_write_record ('file_managed', $file);
 // Inform modules about the newly added file.
 module_invoke_all ('file_insert', $file);
 module_invoke_all ('entity_insert', $file, 'file');
 }
 else {
 drupal_write_record ('file_managed', $file, 'fid');
 // Inform modules that the file has been updated.
 module_invoke_all ('file_update', $file);
 module_invoke_all ('entity_update', $file, 'file');
 }
 // Clear internal properties.
 unset($file->original);
 // Clear the static loading cache.
 entity_get_controller ('file')->resetCache (array(
 $file->fid,
 ));
 return $file;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.