提交文件时FileUpload isFormField()返回true
我Apache-Commons FileUpload
library用来将文件上传到服务器。一切正常,但是突然我提交文件时,FileItem.isFormField()
由于某种原因返回了true。这是我的代码
Servlet
if (ServletFileUpload.isMultipartContent(request)) {
List<FileItem> items = new ServletFileUpload(
new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items)
{
// if item is a file type and not a form field
if (!item.isFormField())
{
// UPLOAD FILE
}
}
}
<form action="upload" enctype="multipart/form-data" method=post> <button type="button" id="clip-btn" class="attach-tool-tip" >
<img src="images/attachment.png" id="attach-img" width="25px"/>
</button>
<input id="attach-btn" type="file" style="display:none"/>
<input id="submit-form" name="upload" type="submit" style="display:none"/>
</form>
// trigger file chooser click when clicking paper clip icon$('#clip-btn').click(function()
{
$('#attach-btn').trigger('click');
});
// trigger file submit on filename change in input type='file'
$('#attach-btn').change(function()
{
$('#submit-form').trigger('click');
});
当我看到’ attach-btn
‘
的内容时,即输入文件的类型,文件在那里有正确的名称,最后修改的大小等。因此它与正确的文件一起提交。解析请求时,是否会有任何外部原因将其计为表单字段?
回答:
也许是拼写错误,但您缺少“名称”属性,这是强制性的。
<input id="attach-btn" type="file" name="someFile" style="display:none"/>
经过一些测试,该字段中没有名称,file input
则不包含在中List<FileItem>
。您只收到submit
input具有默认值的(在我的情况下,类似于“发送请求”)。
试试看,告诉我们是否可行。
以上是 提交文件时FileUpload isFormField()返回true 的全部内容, 来源链接: utcz.com/qa/424527.html