You are here

function imagefield_file_insert in ImageField 5.2

Same name and namespace in other branches
  1. 5 imagefield.module \imagefield_file_insert()
  2. 6.3 imagefield_file.inc \imagefield_file_insert()

Insert a file into the database.

Parameters

$node: Node object this file is be associated with.

$file: File to be inserted, passed by reference since fid should be attached.

2 calls to imagefield_file_insert()
imagefield_field in ./imagefield.module
Implementation of hook_field().
imagefield_file_update in ./imagefield.module
Update the file record if necessary.

File

./imagefield.module, line 221
Defines an image field type. imagefield uses content.module to store the fid, and the drupal files table to store the actual file data.

Code

function imagefield_file_insert($node, &$file, $field) {
  $fieldname = $field['field_name'];

  // allow tokenized paths.
  if (function_exists('token_replace')) {
    global $user;
    $widget_image_path = token_replace($field['widget']['image_path'], 'user', $user);
  }
  else {
    $widget_image_path = $field['widget']['image_path'];
  }
  if (imagefield_check_directory($widget_image_path)) {
    $filepath = file_create_path($widget_image_path) . '/' . $file['filename'];
    if ($file = file_save_upload((object) $file, $filepath)) {
      $file = (array) $file;
      $file['fid'] = db_next_id('{files}_fid');
      db_query("INSERT into {files} (fid, nid, filename, filepath, filemime, filesize)\n               VALUES (%d, %d, '%s','%s','%s',%d)", $file['fid'], $node->nid, $file['filename'], $file['filepath'], $file['filemime'], $file['filesize']);
      module_invoke_all('imagefield_file', 'save', $file);
      return (array) $file;
    }
  }

  // Either directory creation or the upload failed.
  // Include file name in upload error.
  form_set_error(null, t('Image upload was unsuccessful.'));
  return FALSE;
}