Same name and namespace in other branches
  1. 4.6.x modules/upload.module \upload_delete()
  2. 4.7.x modules/upload.module \upload_delete()
  3. 5.x modules/upload/upload.module \upload_delete()

File

modules/upload/upload.module, line 430
File-handling and attaching files to nodes.

Code

function upload_delete($node) {
  $files = array();
  $result = db_query('SELECT DISTINCT f.* FROM {upload} u INNER JOIN {files} f ON u.fid = f.fid WHERE u.nid = %d', $node->nid);
  while ($file = db_fetch_object($result)) {
    $files[$file->fid] = $file;
  }
  foreach ($files as $fid => $file) {

    // Delete all files associated with the node
    db_query('DELETE FROM {files} WHERE fid = %d', $fid);
    file_delete($file->filepath);
  }

  // Delete all file revision information associated with the node
  db_query('DELETE FROM {upload} WHERE nid = %d', $node->nid);
}