提交文件时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

回到顶部