我尝试通过Apache Commons使用文件上传,但是引发了以下异常
org.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException:请求不包含多部分/表单数据或多部分/混合流,内容类型标头为null
我的html代码是
<form name="inp" action="upload.jsp" method="get" onsubmit="return valid();" enctype="multipart/form-data"> <table align="center" cellspacing="2"> <tr><td><font size="5" color="#E41B17">Select File</font> </td> <td><input type="file" name="infile"></td> </tr> <tr><td><font size="5" color="#E41B17">Target File Name</font></td> <td><input type="text" size="20" name="filename"></input></td> </tr> <tr></tr> <tr><td colspan="2" align="center"><input type=submit value="Upload" ></td></tr> </table> <br></br> <center> <a href="index.html"><font color="#E41B17">HOME</font></a> </center> </form>
我的JSP代码是
<% String user = (String)session.getAttribute("uname"); String f = request.getParameter("filename"); DiskFileUpload upload = new DiskFileUpload(); boolean isMultipart=upload.isMultipartContent(request); upload.setSizeMax(1048576); List items = upload.parseRequest(request); FileItem file = (FileItem) items.get(0); String source = file.getName(); String delim="\\"; String str=""; File propfile=new File("C:\\eclipse_practise\\fileupload\\WebContent\\path.properties"); BufferedInputStream propbuf=new BufferedInputStream(new FileInputStream(propfile)); Properties path=new Properties(); path.load(propbuf); String serverlocation=path.getProperty("Server_path"); session.setAttribute("storelocation",serverlocation); StringTokenizer st = new StringTokenizer(source,delim); while(st.hasMoreTokens()) { str=st.nextToken(); } FileItem name = (FileItem) items.get(1); String target = name.getString(); File outfile = new File(serverlocation+target); file.write(outfile); session.setAttribute("filename",target); %>
表单必须为method =“ POST”