我正在尝试扩展表单并在模块中添加上传文件字段,我可以看到文件字段很好,但是当我提交表单时,它是空的,设置了enctype。
$form['#attributes'] = array(
'enctype' => "multipart/form-data"
);
$form['file_upload'] = array(
'#type' => 'file',
'#title' => 'Attach Image'
);
自定义表单提交挂钩:
$form['#submit'][] = 'user_images_handler';
正在调用,但是当我转储表单时,文件字段为空,当我尝试访问它时,它也是空的。
答案 0 :(得分:2)
文件上传的特殊之处在于,“提交的”(上传的)数据不会以表格形式结束,而是需要单独处理(上传不是表单提交的一部分,而是单独的传输过程)。
请参阅docs for file_save_upload()
,例如,看看它是used on form submission usage from within the upload module。
基本上,您只是通过使用上传字段的名称(以及其他一些参数)调用file_save_upload()
来尝试保存上传,并检查此尝试的结果。
答案 1 :(得分:0)
嗯,我试过了,它没有用......它仍然说上传字段是空的。 我在提交函数中有一个调试print语句,但是它没有打印,所以我认为它甚至没有进入提交函数。
你想把file_save_upload()调用放在哪里?
注意,我的表单名为mmil_upload_form ( $form_state )
,提交函数名为function mmil_upload_form_submit ( $form, &$form_state )