1
我在drupal中編寫自定義模塊。
的宗旨是:在drupal 6中,如何在多個步驟中處理uloaded文件?
1. Upload a csv file
2. Display its content in a tabular layout.
3. On confirmation, save it in database.
問題,我面對:
- 我不能上傳任何文件。即使我上傳,我也沒有收到$ _FILES中的任何內容。 >>求助
- 如何拆分過程?假設我成功地上傳了文件[確實有你的幫助;]],並保存該文件,假設在drupal6/uploaded_data目錄中。如何重定向到下一頁,我可以從文件讀取並顯示錶格數據以供確認。
代碼:)
菜單鉤子和所有
function productsadmin_menu() {
$items['admin/settings/product-administration'] = array(
'title' => 'Product Administration',
'description' => 'Upload products data',
'page callback' => 'productsadmin_form',
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function productsadmin_form() {
return drupal_get_form('productsadmin_my_form');
}
此功能被傳遞給drupal_get_form()
function productsadmin_my_form() {
$form['#attributes'] = array('enctype' => "multipart/form-data");
$form['csv'] = array(
'#type' => 'file',
'#title' => 'Product Catalog',
'#description' => 'Product catalog in specified csv format',
'#required' => FALSE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
return $form;
}
驗證(這是不工作的註釋部分)
function productsadmin_my_form_validate($form, &$form_state) {
if($form_state['values']['csv'] == "") {
form_set_error('csv', t('Please input product catalog csv data'));
}
/* // Check if file is uploaded (Not working)
if ($_FILES['files']['name']['csv'] == '') {
form_set_error('csv', t('Please upload product catalog' . $rahul_vals));
}
*/
}
提交行動
function productsadmin_my_form_submit($form, &$form_state) {
/*
1. Move File to uploaded_dir
2. Change the header so that it is redirected to new page
*/
}
感謝名單的工作,你的答案解決第一個問題。 –
如果你想在他提交頁面後重定向某個頁面,你可以在你的表單結構函數中使用 $ form ['#redirect'](例如我的例子中的_form_cvs_import)...例如,你希望用戶被重定向到雅虎.com提交表單後...你可以在你的表單中添加這一行... $ form ['#redirect'] ='http://yahoo.com'; ... 你是這個意思嗎 !!對不起,因爲我的英語不好...也許我把你的錯誤解釋爲 –
Thanx的解決方案。還有一件事,如何在用戶提交表單後在同一頁面上添加「成功消息」。 –