function filefield_paths_file_move in File (Field) Paths 6
Same name and namespace in other branches
- 5 filefield_paths.module \filefield_paths_file_move()
Move file and update its database record.
1 call to filefield_paths_file_move()
- filefield_paths_filefield_paths_process_file in ./
filefield_paths.module - Implements hook_filefield_paths_process_file().
File
- ./
filefield_paths.module, line 716 - Contains core functions for the FileField Paths module.
Code
function filefield_paths_file_move(&$file, $replace = FILE_EXISTS_RENAME) {
$dest = _filefield_paths_strip_path(dirname($file['filepath']['new']));
foreach (explode('/', $dest) as $dir) {
$dirs[] = $dir;
$path = file_create_path(implode($dirs, '/'));
if (!_filefield_paths_check_directory($path, FILE_CREATE_DIRECTORY)) {
watchdog('filefield_paths', 'FileField Paths failed to create directory (%d).', array(
'%d' => $path,
), WATCHDOG_ERROR);
return FALSE;
}
}
if (!file_move($file['field']['filepath'], "{$dest}/{$file['filename']['new']}", $replace)) {
watchdog('filefield_paths', 'FileField Paths failed to move file (%o) to (%n).', array(
'%o' => $file['filepath']['old'],
'%n' => "{$dest}/{$file['filename']['new']}",
), WATCHDOG_ERROR);
return FALSE;
}
$result = db_fetch_object(db_query("SELECT origname FROM {files} WHERE fid = %d", $file['field']['fid']));
// Set 'origname' and update 'filename'.
if (empty($result->origname)) {
db_query("UPDATE {files} SET filename = '%s', filepath = '%s', origname = '%s' WHERE fid = %d", $file['filename']['new'], $file['field']['filepath'], $file['filename']['old'], $file['field']['fid']);
}
else {
db_query("UPDATE {files} SET filename = '%s', filepath = '%s' WHERE fid = %d", $file['filename']['new'], $file['field']['filepath'], $file['field']['fid']);
}
return TRUE;
}