How to upload file in Drupal 7 with forms?
14,847
Doh. $destination shouldn't contain filename, just path.
Author by
lifecoder
Updated on June 04, 2022Comments
-
lifecoder almost 2 years
I have troubles with Drupal 7 and file uploading.
My code that doesn't work:
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).'-'); }
So path created but file doesn't uploads and file_save_upload returns FALSE. Also I tried array() and true as $validators with no effect.
Any help greatly appreciated. Thanks.
-
Magmatic over 8 yearsFor those of you wondering where $destination is, it's the third argument to file_save_upload. That line should look like this: $file = file_save_upload('podcast', array('file_validate_extensions' => array()), $filepath); Or preferably, like this: $file = file_save_upload('podcast', null, $filepath); This is a lot more secure. It doesn't allow PHP files, for example, to be uploaded, which would be a huge security risk. See api.drupal.org/api/drupal/includes!file.inc/function/…