Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在使用servlet上载图像时请求中的项目列表为空_Java_Forms_Servlets_File Upload_Multipartform Data - Fatal编程技术网

Java 为什么在使用servlet上载图像时请求中的项目列表为空

Java 为什么在使用servlet上载图像时请求中的项目列表为空,java,forms,servlets,file-upload,multipartform-data,Java,Forms,Servlets,File Upload,Multipartform Data,我正在尝试使用servlet上传图像,post方法中servlet的主要部分如下所示: if (ServletFileUpload.isMultipartContent(request)) { try { List<FileItem> multiparts = new ServletFileUpload( new DiskFileItemFactory()).parseRe

我正在尝试使用servlet上传图像,post方法中servlet的主要部分如下所示:

        if (ServletFileUpload.isMultipartContent(request)) {
            try {
                List<FileItem> multiparts = new ServletFileUpload(
                    new DiskFileItemFactory()).parseRequest(request);
                Iterator iter = multiparts.iterator();
                System.out.println(multiparts.size()); // this is giving me zero
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    String fileName = item.getName();
                    File file = new File(filePath + File.separator + fileName);
                    item.write(file);
                }
                //File uploaded successfully
            } catch (Exception ex) {
                request.setAttribute("message", "File Upload Failed due to " + ex);
            }
        } else {
            // error occured
        }
我还要提到的一件事是,在请求到达这个servlet之前,会使用登录过滤器重定向未经授权的用户

形式如下:

  <form action="ChangeAvtar" method="post" enctype="multipart/form-data" id="change_avtar">
      <a onclick="document.getElementById('file').click()" >Edit</a>
      <input type="file" id="file" style="display:none" onchange="javascript:uploadAvtar();"/>
  </form>


function uploadAvtar() {
    document.getElementById("change_avtar").submit();
}

谢谢。

您的输入元素没有name属性,我认为这是必需的。如果你加一个会有什么不同吗?@Petter:非常感谢这就是问题所在,你的建议解决了它。我犯了几个愚蠢的错误。很高兴听到你成功了: