Anda melewatkan ini dalam definisi formulir Anda:
$form['#attributes']['enctype'] = 'multipart/form-data'; // If this is not here, upload will fail on submit
Berikut logika yang saya gunakan untuk membuat widget unggah file pada formulir:
// these give us the file upload widget:
$form['#attributes']['enctype'] = 'multipart/form-data'; // If this is not here, upload will fail on submit
$form['fid'] = array( '#title' => t('Upload image'),
'#type' => 'file',
'#description' => t('Images must be one of jpg, bmp, gif or png formats.'),
);
Dan ini adalah lawan dari logika itu, yang saya miliki dalam panggilan balik validasi formulir saya, karena saya memiliki batasan nama file gambar dalam logika saya, tetapi Anda dapat menempatkan ini di kirim balik panggilan jika Anda mau:
// @see: http://api.drupal.org/api/function/file_save_upload/6
// $file will become 0 if the upload doesn't exist, or an object describing the uploaded file
$file = file_save_upload( 'fid' );
error_log( 'file is "'.print_r( $file, true ).'"' );
if (!$file) {
form_set_error('fid', t('Unable to access file or file is missing.'));
}
itu dia.
$form['#attributes']['enctype']
di Drupal 7. Ini dijaga secara otomatis