function multifile_upload_form($form, &$form_state) { $form = array(); $form['file'] = array( '#type' => 'file', '#name' => 'files[]', //多選檔存放位置 '#title' => t('檔案上傳(可複選)'), '#description' => t('許可的檔案格式 jpg, jpeg, png and gif'), '#attributes' => array('multiple' => 'multiple'), //多選模式 //'#upload_location' => 'public://', //複選模式此參數無作用 ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Upload'), ); return $form; } function multifile_upload_form_validate($form, &$form_state) { $num_files = count($_FILES['files']['name']); for ($i = 0; $i < $num_files; $i++) { $file = file_save_upload($i, array(//檔案儲存 'file_validate_is_image' => array(), 'file_validate_extensions' => array('png gif jpg jpeg'), )); if ($file) { if ($file = file_move($file, 'public://')) {//複選模式一定先存放在 暫存目錄下 $form_state['values']['file'][$i] = $file;//需自行存入供後面使用 } else { form_set_error('file', t('儲存失敗, 目的資料夾無法存入.')); } } else { form_set_error('file', t('檔案格式錯誤或無檔案上傳.')); } } } function multifile_upload_form_submit($form, &$form_state) { $fileList = array(); if (is_array($form_state['values']['file'])) { foreach ($form_state['values']['file'] as $file) { //上傳的檔案清單資訊 $new_file = file_load($file->fid); //從 file_managed 載入檔案存放資訊 $file_info = image_get_info($file->uri); //載入圖檔資訊 $fileList[] = $new_file->filename; // 相關處理... } } drupal_set_message(t('上傳成功 ') . implode(', ', $fileList)); }
檔案上傳 一次選取多個檔案
週二, 2013-10-01 18:39
#1
檔案上傳 一次選取多個檔案