Pregunta

Estoy en el progreso de la creación de una función de carga a granel para un sitio de Drupal. El uso del flash soy capaz de subir los archivos a una URL específica que debe ser capaz de manejar los archivos.

Lo que yo quiero hacer, no es sólo para cargar los archivos, pero crear un nodo de un tipo específico con el archivo guardado en un archivo de campo que ha sido configurado con CCK. Dado que estos son archivos de audio, es importante que los mangos de campo archivo de los archivos, por lo que los metadatos adicionales pueden ser proporcionados con el módulo getid3.

Me he tomado un vistazo al código / doc, pero no pudo en la primera ronda a encontrar la manera de manejar esto. Lo ideal es que hay alguna función que me he perdido, que puede manejar la mayor parte de esto por mí.

Si alguien tiene experiencia con esto sería apreciar algunas indicaciones sobre la forma de abordar este asunto.

¿Fue útil?

Solución

Es bastante sencillo, la configuración de su tipo de contenido con los campos necesarios, entonces usted desea utilizar código similar al siguiente:

$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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top