function file_save
7.x file.inc | file_save(stdClass $file) |
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
Related topics
12 calls to file_save()
- EntityCrudHookTestCase::testFileHooks in drupal-7.x/
modules/ simpletest/ tests/ entity_crud_hook_test.test - Tests hook invocations for CRUD operations on files.
- FileSaveTest::testFileSave in drupal-7.x/
modules/ simpletest/ tests/ file.test - file_copy in drupal-7.x/
includes/ file.inc - Copies a file to a new location and adds a file record to the database.
- file_field_presave in drupal-7.x/
modules/ file/ file.field.inc - Implements hook_field_presave().
- file_move in drupal-7.x/
includes/ file.inc - Moves a file to a new location and update the file's database entry.
File
- drupal-7.x/
includes/ file.inc, line 599 - API for handling file uploads and server file management.
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');
}
unset($file->original);
return $file;
}