2 nzb15555196162 nzb15555196162 于 2015.06.12 13:14 提问

上传文件jsp+servlet出现的问题

```package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;

public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {

private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

private static java.util.List _jspx_dependants;

private javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.AnnotationProcessor _jsp_annotationprocessor;

public Object getDependants() {
return _jspx_dependants;
}

public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
}

public void _jspDestroy() {
}

public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {

PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;


try {
  response.setContentType("text/html;charset=utf-8");
  pageContext = _jspxFactory.getPageContext(this, request, response,
            null, true, 8192, true);
  _jspx_page_context = pageContext;
  application = pageContext.getServletContext();
  config = pageContext.getServletConfig();
  session = pageContext.getSession();
  out = pageContext.getOut();
  _jspx_out = out;

  out.write("\r\n");
  out.write("\r\n");
  out.write("\r\n");
  out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");
  out.write("<html>\r\n");
  out.write("  <head>\r\n");
  out.write("   \r\n");
  out.write("    \r\n");
  out.write("    <title>My JSP 'index.jsp' starting page</title>\r\n");
  out.write("  <script type=\"text/javascript\">\r\n");
  out.write("   var attachname=\"attach\";\r\n");
  out.write("   var i=1;\r\n");
  out.write("   function addInput(){\r\n");
  out.write("   if(i>0){\r\n");
  out.write("   var attach=attachname+i;\r\n");
  out.write("   if(createInput(attach))i=i+1;\r\n");
  out.write("   }\r\n");
  out.write("   }\r\n");
  out.write("   function delInput(){\r\n");
  out.write("   if(i>1){\r\n");
  out.write("   i=i-1\r\n");
  out.write("   if(!removeInput())i=i+1;\r\n");
  out.write("   }\r\n");
  out.write("   }\r\n");
  out.write("   function createInput(nm){\r\n");
  out.write("   var aElement=document.createElement(\"input\");\r\n");
  out.write("   aElement.name=nm;\r\n");
  out.write("   aElement.id=nm;\r\n");
  out.write("   aElement.type=\"file\";\r\n");
  out.write("   if(document.getElementById(\"upload\").appendChild(aElement)==null)return false;\r\n");
  out.write("   return true;\r\n");
  out.write("   }\r\n");
  out.write("   function removeInput(nm){\r\n");
  out.write("   var aElement=document.getElementById(\"upload\");\r\n");
  out.write("   if(aElement.removeChild(aElement.lastChild)==null)return false;\r\n");
  out.write("   return true;\r\n");
  out.write("   }\r\n");
  out.write("  </script>\r\n");
  out.write("  </head>\r\n");
  out.write("  \r\n");
  out.write("  <body>\r\n");
  out.write("   <form action=\"UpLoadServlet.action\" method=\"post\" enctype=\"multitype/form-data\">\r\n");
  out.write("   用户名<input type=\"text\" name=\"user_name\"/><br/>\r\n");
  out.write("   文件<input type=\"file\" value=\"上传文件\" /><br/>\r\n");
  out.write("   <input type=\"button\" value=\"继续上传\" onclick=\"addInput()\"/><br/>\r\n");
  out.write("   <input type=\"button\" value=\"删除文件\" onclick=\"delInput()\"/><br/>\r\n");
  out.write("   <input type=\"submit\" value=\"确认\"/>\r\n");
  out.write("   <span id=\"upload\"></span>\"\n");
  out.write("   </form>\r\n");
  out.write("  </body>\r\n");
  out.write("</html>\r\n");
} catch (Throwable t) {
  if (!(t instanceof SkipPageException)){
    out = _jspx_out;
    if (out != null && out.getBufferSize() != 0)
      try { out.clearBuffer(); } catch (java.io.IOException e) {}
    if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
    else log(t.getMessage(), t);
  }
} finally {
  _jspxFactory.releasePageContext(_jspx_page_context);
}

}
}

org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded

7个回答

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.12 13:24

文件上传类型无效,请求不包含multipart/form-data或多重/混合流,内容类型标头是application/x-www-form-urlencoded
jsp页面怎么提交的

nzb15555196162
nzb15555196162   2015.06.12 15:07

jsp文件如下:


```<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>


    <title>My JSP 'index.jsp' starting page</title>
  <script type="text/javascript">
   var attachname="attach";
   var i=1;
   function addInput(){
   if(i>0){
   var attach=attachname+i;
   if(createInput(attach))i=i+1;
   }
   }
   function delInput(){
   if(i>1){
   i=i-1
   if(!removeInput())i=i+1;
   }
   }
   function createInput(nm){
   var aElement=document.createElement("input");
   aElement.name=nm;
   aElement.id=nm;
   aElement.type="file";
   if(document.getElementById("upload").appendChild(aElement)==null)return false;
   return true;
   }
   function removeInput(nm){
   var aElement=document.getElementById("upload");
   if(aElement.removeChild(aElement.lastChild)==null)return false;
   return true;
   }
  </script>
  </head>

  <body>
   <form action="UpLoadServlet.action" method="post" enctype="multitype/form-data">
   用户名<input type="text" name="user_name"/><br/>
   文件<input type="file" value="上传文件" /><br/>
   <input type="button" value="继续上传" onclick="addInput()"/><br/>
   <input type="button" value="删除文件" onclick="delInput()"/><br/>
   <input type="submit" value="确认"/>
   <span id="upload"></span>"
   </form>
  </body>
</html>


ghpan
ghpan   2015.06.12 15:23

文件上传,不管服务端使用什么技术 form中必须设置enctype="multitype/form-data" method="post"

nzb15555196162
nzb15555196162   2015.06.12 15:58

我form中就是这样来设置的

nzb15555196162
nzb15555196162   2015.06.12 15:58

控制台报错:org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded

beacon_2011
beacon_2011   Rxr 2015.06.14 12:20

文件上传,要在form里写multitype那么

nzb15555196162
nzb15555196162   2015.06.14 22:46

问题已经解决,谢谢各位

Csdn user default icon
上传中...
上传图片
插入图片