Forms 发布表单上的NPE提交多部分/表单数据
我使用JSP/Servlets允许用户上传图像(如下所述:) 通常一切正常(我在相应的servlet上有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更
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]) {
...
}
});