it-swarm-es.com

Nodos de ahorro masivo con un campo de archivo

Estoy en el proceso de crear una función de carga masiva para un sitio Drupal. Usando flash puedo cargar los archivos a una URL específica que debería poder manejar los archivos.

Lo que quiero hacer no es solo cargar los archivos, sino crear un nodo de un tipo específico con el archivo guardado en un campo de archivo que se ha configurado con CCK. Dado que estos son archivos de audio, es importante que file-field maneje los archivos, por lo que se pueden proporcionar metadatos adicionales con el módulo getid3.

He echado un vistazo al código/documento, pero en la primera ronda no pude averiguar cómo manejar esto. Idealmente, hay alguna función que me he perdido, que puede manejar la mayor parte de esto por mí.

Si alguien tiene experiencia con esto, agradecería algunos consejos sobre cómo abordar este asunto.

5
googletorp

Es bastante sencillo, configure su tipo de contenido con los campos obligatorios, luego desea usar un código similar a este:

$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);
5
Decipher