Creé el tipo de contenido "Galería" y agregué dos campos: "foto" y "documento". Luego usé el siguiente código para cargar un archivo en el campo "documento":
$file = file_save_upload('document', array(
'file_validate_extensions' => array('txt doc'), // Validate extensions.
));
// If the file passed validation:
if ($file) {
// Move the file, into the Drupal file system
if ($file = file_move($file, 'public://')) {
$file->status = FILE_STATUS_PERMANENT;
// $file->file_display = 1;
$file = file_save($file);
} else {
$output = t('Failed to write the uploaded file the site\'s file folder.');
}
} else {
$output = t('No file was uploaded.');
}
Adjunto este archivo al nodo usando el siguiente código:
$customNode->field_document[$customNode->language][0] = (array)$file;
Cuando llamo a la node_submit()
función, aparece el siguiente error:
Infracción de restricción de integridad: 1048 La columna 'field_document_display' no puede ser nula
¿Alguien sabe lo que estoy haciendo mal?
Su solución es casi correcta; sin embargo, en algunos casos requiere que también configure la visualización y la descripción.
Para que su código funcione, haga esto:
fuente
Creo que la clave aquí son esas líneas
como señaló Eric van Eldik. Estaba luchando con exactamente el mismo problema, agregando solo
no ayudó, pero
me alegró el día.
fuente
Para agregar archivos mediante programación al nodo, puede usar
fuente
Solo para pegar mi solución aquí también, necesitaba crear un nuevo nodo y cargar una imagen mediante programación.
fuente
Adjunte múltiples archivos mediante programación en Drupal 8:
fuente