2009-10-27 42 views
2

我想擴展一個表單並添加一個模塊內的上傳文件字段,我可以看到文件字段就好了,但是當我提交表單時它是空的,enctype是組。Drupal 6 hook_form_FORM_ID_alter添加上傳文件字段

$form['#attributes'] = array(
    'enctype' => "multipart/form-data" 
); 

    $form['file_upload'] = array(
    '#type' => 'file', 
    '#title' => 'Attach Image' 
); 

自定義表單提交鉤:

$form['#submit'][] = 'user_images_handler'; 

被調用,但是當我傾倒的形式,文件字段爲空,當我嘗試訪問它,它是空的爲好。

回答

2

文件上傳的特殊之處在於「提交」(上傳的)數據並不是以表格形式結尾,而是需要單獨處理(上傳並不是表單提交的一部分,而是單獨的傳輸過程)。

查看docs for file_save_upload(),作爲例子,看看它是如何的used on form submission usage from within the upload module

基本上,您只需通過調用file_save_upload()並使用上傳字段的名稱(以及其他參數)來嘗試保存上載並檢查此嘗試的結果。

0

嗯,我試過了,它沒有工作......它仍然說上傳字段是空的。 我在提交函數有一個調試打印語句,但它不打印,所以我不認爲它甚至到達提交功能。

你認爲在哪裏放置了file_save_upload()調用?

請注意,我的表單名爲mmil_upload_form ($form_state),提交功能名爲function mmil_upload_form_submit ($form, &$form_state)