Fix for 4.6 custom table -> 5.x filefield migration code

  1.   $result = db_query("SELECT * FROM {cv_files} WHERE uid = %d", $user46->uid);
  2.   $i = 0;
  3.  
  4.   while ($row = db_fetch_object($result)) {
  5.     $old_filepath = PK_46_PATH .'/'. $row->filepath;
  6.     $filename = array_pop(explode('/', $old_filepath));
  7.  
  8.     if (!empty($filename)) {
  9.       if (!($node->field_files_zeugnisse)) {
  10.         $node->field_files_zeugnisse = array();
  11.       }
  12.       $node->field_files_zeugnisse[$i] = array(
  13.         'delete' => 0,
  14.         'alt' => '',
  15.         'title' => '',
  16.         'list' => 1,
  17.         'description' => empty($row->description) ? $filename : $row->description,
  18.         'sessionid' => 0,
  19.         'filename' => $filename,
  20.       );
  21.       $filepath = 'files/zeugnisse/'. $account->uid .'/'. $filename;
  22.  
  23.       if (function_exists('mime_content_type')) {
  24.         $old_mime = mime_content_type($old_filepath);
  25.       }
  26.       else {
  27.         $size = getimagesize($old_filepath);
  28.         $old_mime = $size['mime'];
  29.       }
  30.       if ($fileinfo = stat($old_filepath)) {
  31.         $old_size = $fileinfo[7]; // file size in bytes
  32.       }
  33.       $node->field_files_zeugnisse[$i]['fid'] = 'upload';
  34.       $node->field_files_zeugnisse[$i]['filepath'] = $old_filepath;
  35.       $node->field_files_zeugnisse[$i]['filemime'] = $old_mime;
  36.       $node->field_files_zeugnisse[$i]['filesize'] = $old_size;
  37.     }
  38.     ++$i;
  39.   }

Submit Fix

Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Select the syntax highlighting mode to use.