小弟在做实训,在做图片上传时遇到这个问题,解决不了,小弟已添加了“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)

解决方案 »

  1.   

    fil.saveAs("uploadImages/" + fil.getFileName());路径有问题吧?
      

  2.   

    enctype= "multipart/form-data "
    把当中的空格全部去掉试试。
    enctype="multipart/form-data"
      

  3.   

    String real_path = servlet.getServletContext().getRealPath("/uploadImages");
    fil.saveAs(real_path + fil.getFileName(),SmartUpload.SAVE_PHYSICAL); 试下
      

  4.   

    上传成功了,但是还有一个又出现了一个问题,我用的是Myeclipse,在我的包资源管理器中项目下的uploadImages文件夹中为什么没有显示上传的图片,但是在该路径下的确已存在上传的图片
      

  5.   

    [Quote=引用 6 楼 huxiweng 的回复:]
    引用 5 楼 tianxiatwo 的回复:
    上传成功了,但是还有一个又出现了一个问题,我用的是Myeclipse,在我的包资源管理器中项目下的uploadImages文件夹中为什么没有显示上传的图片,但是在该路径下的确已存在上传的图片上传文件是上传到服务器上  在你的工程上面肯定找不到啊
      

  6.   


    我也遇到同样的问题,不过,我的问题是因为用jQuery的Ajax提交了表单。原因是Ajax不支持enctype="multipart/form-data"。