Узлы массового сохранения с полем файла
Я в процессе создания функции массовой загрузки для сайта Drupal. Используя flash, я могу загружать файлы на определенный URL-адрес, который должен обрабатывать файлы.
Что я хочу сделать, так это не просто загрузить файлы, а создать узел определенного типа с файлом, сохраненным в файловом поле, которое было настроено с помощью CCK. Поскольку это аудиофайлы, важно, чтобы файловое поле обрабатывало файлы, поэтому дополнительные метаданные могут быть предоставлены вместе с модуль getid3.
Я взглянул на код/документ, но в первом раунде не смог понять, как с этим справиться. В идеале, есть какая-то функция, которую я пропустил, которая может справиться с большей частью этого для меня.
Если у кого-то есть опыт в этом, я был бы признателен за некоторые указания о том, как подойти к этому вопросу.
1 answers
Это довольно просто, настройте свой тип контента с необходимыми полями, затем вы хотите использовать код, подобный этому:
$file = new stdClass();
$file->filename = basename($filepath);
$file->filepath = $filepath;
$file->filemime = $mime;
$file->filesize = filesize($filepath);
$file->uid = $uid;
$file->status = FILE_STATUS_PERMANENT;
$file->timestamp = time();
drupal_write_record('files', $file);
$node = new StdClass();
$node->type = 'type';
$node->body = 'body';
$node->title = 'title';
$node->field_file = array(
array(
'fid' => $file->fid,
'title' => basename($file->filename),
'filename' => $file->filename,
'filepath' => $file->filepath,
'filesize' => $file->filesize,
'mimetype' => $mime,
'data' => array(
'description' => basename($file->filename),
),
'list' => 1,
),
);
$node->uid = 1;
$node->status = 1;
$node->active = 1;
$node->promote = 1;
node_save($node);