Загрузка файлов Flex не работает в среде распорок с использованием JSP

1

Я использую jsp для загрузки файлов с помощью common-fileupload. Он отлично работает в Spring Blaze-ds и flex environment. Но тот же самый jsp, когда я использую в struts и flex framework, я получаю следующую ошибку:

org.apache.jasper.JasperException: произошла ошибка при обработке страницы JSP/pages/Template_Upload.jsp в строке 69

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)

Пожалуйста, помогите мне.. Спасибо в Advance

ОБНОВЛЕНО Это мой 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);
         }
      }
  • 0
    Содержит ли ваша форма enctype="multipart/form-data" ?
  • 0
    Нет, моя форма не содержит enctype = "multipart / form-data"
Теги:
jsp
file-upload
struts2
flex

1 ответ

0

Нет моей формы не содержит enctype="multipart/form-data"

Тогда не удивительно, что вы получаете ошибку

org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: запрос не содержит многостраничный/форматированный или многостраничный/смешанный поток, заголовок типа контента имеет значение null

Я не знаю, как загружать файлы Flex, но при загрузке файлов контент должен быть multipart/form-data.

Если тип содержимого не указан, используется значение по умолчанию: application/x-www-form-urlencoded

  • 0
    var request: URLRequest = new URLRequest (); request.url = UPLOAD_URL; request.contentType = "многочастному / форм-данных"; fr.upload (запрос);
  • 0
    Это мой гибкий код. private var fr: FileReference; var request: URLRequest = new URLRequest (); request.url = UPLOAD_URL; request.contentType = "многочастному / форм-данных"; fr.upload (запрос); Я не знаю, как указать enctype = "multipart / form-data" в гибких формах. Поэтому я отправляю запрос в JSP следующим образом. Но я получаю ту же ошибку. Также в JSP List <FileItem> items = upload.parseRequest (запрос); Когда я пытаюсь напечатать элементы, я получаю размер 0.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню