小弟在做实训,在做图片上传时遇到这个问题,解决不了,小弟已添加了“enctype= "multipart/form-data "”,但是还是不行,望各位前辈帮帮小弟ImagesAdd.jsp
<form name="Book_Delete" method="post" enctype= "multipart/form-data " action="../test.jsp">
<input type="hidden" name="Bookoperation" value="image_Add">
<table width="768">
<tr>
<td width="100" height="20"> 图 片:</td>
<td><input type="file" name="file" width="100" height="20" value="浏 览" /></td>
</tr>
<tr>
<td><input type="submit" name="submit" width="100" height="20" value="上 传" /></td>
</tr>
</table>
</form>test.jsp<% //实例化上传组件 SmartUpload upload = new SmartUpload(); //初始化上传组件 upload.initialize(this.getServletConfig(), request, response); //开始上传 upload.upload(); //获取上传的文件列表对象 Files f = upload.getFiles(); //获取文件对象 File fil = f.getFile(0); //去的文件后缀 String ext = fil.getFileExt();
//来源:(http://blog.sina.com.cn/s/blog_59d6717c0100e62l.html) - SmartUpload上传图片_忘了时间的钟_新浪博客 //判断文件类型是否是jpg格式 if (!(ext.equals("jpg"))) { out.println("<script type='text/javascript'>alert('文件类型错误'); location.replace('index.jsp');</script>"); return; } //满足条件进行文件的上传 需要注意的是upload使我们webRoot文件夹下的一个目录 fil.saveAs("uploadImages/" + fil.getFileName()); %> 这是错误提示:org.apache.jasper.JasperException: An exception occurred processing JSP page /test.jsp at line 2926:
27: //获取文件对象
28:
29: File fil = f.getFile(0);
30:
31: //去的文件后缀
32:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:426)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.OlineBookStores.Filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)root causejava.lang.IllegalArgumentException: Files' name is invalid or does not exist (1205).
com.jspsmart.upload.Files.getFile(Files.java:73)
org.apache.jsp.test_jsp._jspService(test_jsp.java:85)
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:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.OlineBookStores.Filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
把当中的空格全部去掉试试。
enctype="multipart/form-data"
fil.saveAs(real_path + fil.getFileName(),SmartUpload.SAVE_PHYSICAL); 试下
引用 5 楼 tianxiatwo 的回复:
上传成功了,但是还有一个又出现了一个问题,我用的是Myeclipse,在我的包资源管理器中项目下的uploadImages文件夹中为什么没有显示上传的图片,但是在该路径下的确已存在上传的图片上传文件是上传到服务器上 在你的工程上面肯定找不到啊
我也遇到同样的问题,不过,我的问题是因为用jQuery的Ajax提交了表单。原因是Ajax不支持enctype="multipart/form-data"。