Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 Flex文件上载在使用JSP的struts环境中不起作用_Java_Jsp_Apache Flex_File Upload_Struts2 - Fatal编程技术网

Java Flex文件上载在使用JSP的struts环境中不起作用

Java Flex文件上载在使用JSP的struts环境中不起作用,java,jsp,apache-flex,file-upload,struts2,Java,Jsp,Apache Flex,File Upload,Struts2,我正在使用一个jsp来使用common-fileupload进行文件上传。它在SpringBlazeDS和flex环境中运行良好。但是当我在struts和flex框架中使用相同的jsp时,我得到以下错误: org.apache.jasper.jaspereException:在第69行处理JSP page/pages/Template_Upload.JSP时发生异常 66: FileItemFactory factory = new DiskFileItemFactory

我正在使用一个jsp来使用common-fileupload进行文件上传。它在SpringBlazeDS和flex环境中运行良好。但是当我在struts和flex框架中使用相同的jsp时,我得到以下错误:

org.apache.jasper.jaspereException:在第69行处理JSP page/pages/Template_Upload.JSP时发生异常

66:             FileItemFactory factory = new DiskFileItemFactory();
67:             ServletFileUpload upload = new ServletFileUpload(factory);
68:             //List<FileItem> items = upload.parseRequest(request);
69:             List<FileItem> items = upload.parseRequest(request);
70:             out.println(items);
71:             int counter = 0;
72:             


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)



root cause 
javax.servlet.ServletException: org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
    org.apache.jsp.pages.Template_005fUpload_jsp._jspService(Template_005fUpload_jsp.java:202)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 
org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null
    org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:908)
    org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
    org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)
    org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    org.apache.jsp.pages.Template_005fUpload_jsp._jspService(Template_005fUpload_jsp.java:136)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
66:FileItemFactory工厂=新的DiskFileItemFactory();
67:ServletFileUpload upload=新的ServletFileUpload(工厂);
68://List items=upload.parseRequest(请求);
69:列表项=upload.parseRequest(请求);
70:输出打印项次(项目);
71:int计数器=0;
72:             
堆栈跟踪:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javaservlet.http.HttpServlet.service(HttpServlet.java:803)
根本原因
javax.servlet.ServletException:org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException:请求不包含多部分/表单数据或多部分/混合流,内容类型标头为空
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.pages.Template\u 005fUpload\u jsp.\u jsp服务(Template\u 005fUpload\u jsp.java:202)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javaservlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javaservlet.http.HttpServlet.service(HttpServlet.java:803)
根本原因
org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException:请求不包含多部分/表单数据或多部分/混合流,内容类型标头为null
org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.(FileUploadBase.java:908)
org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
org.apache.jsp.pages.Template\u 005fUpload\u jsp.\u jsp服务(Template\u 005fUpload\u jsp.java:136)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javaservlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javaservlet.http.HttpServlet.service(HttpServlet.java:803)
请帮帮我。。 提前谢谢

已更新 这是我的JSP。我得到的项目大小为0。因此它不会进入for循环并在指定路径中创建文件

 String uploadpath = "C:\\XXXX\\XXXXX\\DataToUpload";
    uploadDir = uploadpath;
    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    List<FileItem> items = upload.parseRequest(request);
    out.println(items);
    int counter = 0;
    for(FileItem item : items) {
        File uploadedFile = new File(uploadDir + File.separator + item.getName());
        uploadedFile.createNewFile();
        try 
         {
          item.write(uploadedFile);
         }
         catch(IOException e) {
           log.error("error" + e);
         }
      }
String uploadpath=“C:\\XXXX\\XXXXX\\DataToUpload”;
uploadDir=上传路径;
FileItemFactory=new DiskFileItemFactory();
ServletFileUpload upload=新的ServletFileUpload(工厂);
列表项=upload.parseRequest(请求);
out.println(项目);
int计数器=0;
用于(文件项:项){
File uploadedFile=新文件(uploadDir+File.separator+item.getName());
uploadedFile.createNewFile();
尝试
{
item.write(上传文件);
}
捕获(IOE异常){
日志错误(“错误”+e);
}
}
否我的表单不包含
enctype=“多部分/表单数据”

那么,你得到错误也就不足为奇了

org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException:请求不包含多部分/表单数据或多部分/混合流,内容类型标头为空

我不知道Flex文件上传,但上传文件时,内容必须是
多部分/表单数据


如果未指定内容类型,则使用默认类型:

您的表单是否包含
enctype=“多部分/表单数据”
?否我的表单不包含enctype=“多部分/表单数据”var-request:URLRequest=new-URLRequest();request.url=UPLOAD\u url;request.contentType=“多部分/表单数据”;fr.upload(请求);这是我的flex代码。私有var-fr:FileReference;var-request:URLRequest=新的URLRequest();request.url=UPLOAD\u url;request.contentType=“多部分/表单数据”;fr.upload(请求);我不知道如何在flex表单中指定enctype=“multipart/form data”,所以我像这样向JSP发送请求。但我也犯了同样的错误。同样在JSP中,List items=upload.parseRequest(请求);当我尝试打印项目时,我得到的大小为0。你能通过编辑自己的问题发布你的JS和JSP(通过私人和不必要的数据正确清理)吗?