Forms 发布表单上的NPE提交多部分/表单数据

Forms 发布表单上的NPE提交多部分/表单数据,forms,jsp,servlets,file-upload,multipartform-data,Forms,Jsp,Servlets,File Upload,Multipartform Data,我使用JSP/Servlets允许用户上传图像(如下所述:) 通常一切正常(我在相应的servlet上有MultipartConfig注释) 我遇到了一个案例,在尝试从HttpServletRequest检索部件时抛出NullPointerException:request.getPart() 根据文档,当请求不包含“请求的部分”()时,就会发生这种情况 因此,我可以重新创建此问题的唯一方法是操作html(通过浏览器的html编辑工具)并手动删除文件input元素的name属性(即:将name更

我使用JSP/Servlets允许用户上传图像(如下所述:)

通常一切正常(我在相应的servlet上有
MultipartConfig
注释)

我遇到了一个案例,在尝试从
HttpServletRequest
检索部件时抛出
NullPointerException
request.getPart()

根据文档,当
请求
不包含“请求的部分”()时,就会发生这种情况

因此,我可以重新创建此问题的唯一方法是操作html(通过浏览器的html编辑工具)并手动删除文件
input
元素的
name
属性(即:将
name
更改为空字符串)

我发现这不太可能是用户导致抛出异常的原因。发生此错误是否有其他原因?我想知道原因是什么

多谢各位

更新 相关html:(使用引导折叠显示文件
input
元素) (数据属性是针对javascript的-可能是引用的内容弄乱了
name
属性?)


这是由我设置的一些javascript验证引起的

具体来说:在表单提交时,在Internet Explorer上检查文件大小会导致问题中提到的NPE

javascript

$("#form").submit(function(){
    if ($("#some_file").files[0]) {
    ...
    }
});
我不知道为什么会这样。 这在Firefox中不会发生。 为了解决这个问题,我在元素的
change
上检查了有效性,而不是在表单提交上


这不是一个理想的解决方案。我仍在试图找出导致Internet Explorer出现错误的原因。

您的代码在哪里?你希望我们有一个水晶球,或者一些神奇的感觉,能够“调试”你的代码而不需要它吗?在问题中添加了代码。请发布一个问题发生在哪种情况下,你可以发布问题详细信息以及你的servlet代码吗?嘿,问题发生在用户提交表单时。上面的servlet代码是检查的第一件事,它抛出
NPE
(意味着输入的其余字段不相关)…谢谢。
@MultipartConfig(maxFileSize = 1024*1024*5)
public class FileUploadServlet
{
...
try {
     Part filePart = req.getPart("someFile");
     ...filePart.getSubmittedFileName();
$("#form").submit(function(){
    if ($("#some_file").files[0]) {
    ...
    }
});