Comment télécharger des fichiers dans Drupal 7 avec des formes?

J'ai des problèmes avec Drupal 7 et du téléchargement du fichier.

Mon code qui ne fonctionne pas:

function test_form($form, &$form_state){

$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['podcast'] = array(
    '#title' => 'Audio file',
    '#type' => 'file',
);
$form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
);
return $form;

}

function test_form_submit($form, &$form_state){

$vals = $form_state['values'];
$filepath = 'public://test/';
//$filepath = 'temporary://test/';
$filename = 'rcc_date.mp3';

file_prepare_directory($filepath, FILE_CREATE_DIRECTORY);
$file = file_save_upload('podcast', array('file_validate_extensions' => array()), $filepath.$filename);
//got FALSE here. Why?
die(print_r($file===FALSE).'-');

}

Donc tracé créé mais le dossier n'a pas les téléchargements et file_save_upload renvoie la valeur FALSE. Aussi j'ai essayé array (), et true $validators avec aucun effet.

Toute aide grandement appréciée. Merci.

Comment obtenir le nom de fichier dynamiquement ?
Le nom de fichier est complètement inutile dans ce code. Laisser complètement. Ne définissez pas le fichier $filename variable, et ne pas ajouter à $filepath.
Pour utiliser un tableau vide de fichier validateurs, comme array('file_validate_extensions' => array()), est dangereux et ne doit pas être utilisé. Utiliser la valeur NULL au lieu de cela, prendre la valeur par défaut, ou de faire une vraie liste vous-même. Voir la note dans la api.drupal.org/api/drupal/includes!fichier.inc/fonction/...

OriginalL'auteur lifecoder | 2010-11-20