Struts2+Ajax实现文件上传时遇到后台action接收file为空的问题,报错Invalid field value for field “excel”。("excel"为file name)
出现问题原因:form表单少写一个属性enctype="multipart/form-data"
enctype属性详解:
enctype:规定了form表单在发送到服务器时候编码方式,有如下的三个值。
1、application/x-www-form-urlencoded。默认的编码方式。但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。
2、multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。
3、text/plain。纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。
修改后代码片段如下:
// An highlighted block
<form action="" method="post" id="form_s" enctype="multipart/form-data" >
...
</from>