【发布时间】:2011-09-23 14:14:14
【问题描述】:
我正在用 drupal 编写自定义模块。
目标是:
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
*/
}
【问题讨论】:
标签: php redirect file-upload drupal-6 http-headers