Я использую 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);
}
}
Нет моей формы не содержит
enctype="multipart/form-data"
Тогда не удивительно, что вы получаете ошибку
org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException: запрос не содержит многостраничный/форматированный или многостраничный/смешанный поток, заголовок типа контента имеет значение null
Я не знаю, как загружать файлы Flex, но при загрузке файлов контент должен быть multipart/form-data
.
Если тип содержимого не указан, используется значение по умолчанию: application/x-www-form-urlencoded
enctype="multipart/form-data"
?