Программная загрузка файлов в Drupal, файловая система настроена как приватная - PullRequest
0 голосов
/ 26 января 2011

Я пытаюсь использовать этот скрипт для загрузки файлов в Drupal.У меня проблемы с перемещением файла (ов) из A в B. Файловая система Drupal настроена как частная

Узлы созданы нормально, и все работает, за исключением того, что по какой-то причине я не могу загрузить прикрепленный файл.Это просто берет меня на страницу не найдена.Если я создаю узел в drupal и загружаю файл, он работает нормально.

Я, должно быть, что-то не так с моим кодом здесь.Я следовал этому руководству за загрузкой файлов, но я не могу найти ничего о настройке файловой системы Drupal как частной и о том, что кто-то должен был бы сделать, чтобы она правильно работала программно.

У кого-нибудь есть опыт работы с этим?

//prep file source and destination vars
$withoutExt = substr($file2, 0, -7);
$sourcePDF = "/var/www/html/pay.***.com/burst_pdfs/pdfs/" . $withoutExt . ".pdf";
$destinationPDF = '/var/paystubs/' . $drupalUid . '/' . $withoutExt . '.pdf';
$destination = '/var/paystubs/' . $drupalUid . '/';

//if the file does not exist, create it
if (!file_check_directory($destination, TRUE)){
    echo "Fail";    
}

// Copy the file to the Drupal files directory if it exists
if (file_exists($sourcePDF)) {

    if(!file_move($sourcePDF, $destination, FILE_EXISTS_RENAME)) {
        echo "Failed to move file: $sourcePDF.\n";
    } 
} else {

    echo "File Moved to " . $destination . "<br/>"; }


$mime = 'application/pdf'; // Importing PDF files
$file = new stdClass();
$file->filename = $withoutExt;
$file->filepath = $destinationPDF;
$file->filemime = $mime;
$file->filesize = filesize($destinationPDF);

$file->uid = 1;
$file->status = FILE_STATUS_PERMANENT;
$file->timestamp = time();
drupal_write_record('files', $file);       



$node = new stdClass();
$node->title = $employeeDate;
$node->body = $employeeID;
$node->type = 'estub';
$node->uid = 1;

//$field = field_file_save_file($file_drupal_path, file_directory_path() .'/'.    $directory);
//$node->$field_paystub_upload[] = $field;

$node->field_estub_upload = array(
    array(
      'fid' => $file->fid,
      'title' => basename($file->filename),
      'filename' => $file->filename,
      'filepath' => $file->filepath,
      'filesize' => $file->filesize,
      'mimetype' => $mime,
      'data' => array(
        'description' => $withoutExt,
      ),
      'list' => 1,
    ),
  );

  $node->status = 1;
  $node->active = 1;
  $node->promote = 1;
  node_save($node);

1 Ответ

0 голосов
/ 26 января 2011

Мое первое предположение - файл должен находиться в каталоге «files», чтобы drupal имел к нему доступ.Является ли /var/paystubs/$uid тем, что задано как каталог "files" в Drupal?Когда вы загружаете файлы с помощью интерфейса, они заканчиваются на /var/paystubs/$uid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...