后台无法获得表单上传的附件?
李小翔
2015-08-08 16:16

内容列表

供稿人：张文秀
如下面的代码所示，在 gsp 中放置了一个表单，表单中有一个文件选择控件（input type=’file’）：
<g:form action=”foo” name=”fmFoobar”>
   <input type=”file” name=”file”>
</g:form>
表单提交后，在操作 foo 中，无法通过 request.getFileMap() 获得上传的附件。
原因分析：
· 	附件上传，表单必须用 POST 方式提交
· 	附件上传，必须设置表单的 enctype 为 “multipart/form-data”，如需兼容 IE6/IE7 的话，还需要设置表单属性 encoding 为 “multipart/form-data”
· 	如果附件大小为 0，后台也无法获得上传的附件
· 	因此，上面的代码应该修改为：
<g:form action=”foo” name=”fmFoobar” method=”post” enctype=”multipart/form-data” encoding=”multipart/form-data”>
   <input type=”file” name=”file”>
</g:form>
BTW：如果不是使用 jQuery 插件 ajaxForm 进行 AJAX 提交的话，上面的 enctype 和 encoding 可以忽略，BroFramework 会自动添加这两个属性。