当前位置: 代码迷 >> Java Web开发 >> ,java servlet 下传文件异常。
  详细解决方案

,java servlet 下传文件异常。

热度:2533   发布时间:2013-02-25 21:10:46.0
求助,java servlet 上传文件错误。。。。
java中,使用servlet上传文件没有反应,但控制台输出“上传成功”,求大神相助,代码如下。。。不想用控件上传。。。
jsp代码如下:
Java code
<form action="/vats/upfileServlet.do" method="post" encType=multipart/form-data >         图片:<input type="file" name="img"/>     <input type="submit" value="提交"/>     </form>

servlet中:
Java code
public void doPost(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException {         response.setContentType("text/html");         request.setCharacterEncoding("UTF-8");         response.setCharacterEncoding("UTF-8");                  DiskFileUpload du = new DiskFileUpload();         du.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB         du.setSizeThreshold(4096);// 设置缓存区大小 ,4 kb;         // up 为 /WebRoot 下的 一个目录         du.setRepositoryPath(request.getSession().getServletContext().getRealPath("/up"));// 设置缓存目录         // 得到所有文件         try {             List list = du.parseRequest(request);             Iterator it = list.iterator();             while (it.hasNext()) {                 FileItem fileItem = (FileItem) it.next();                     String fileName = fileItem.getName();                     int index = fileName.lastIndexOf('.');                     fileName = fileName.substring(index);                     fileItem.write(new File(request.getSession()                             .getServletContext().getRealPath("/file")+ "/" + fileName));                     System.out.println("上传成功");             }         } catch (Exception e) {             e.printStackTrace();         }         PrintWriter out = response.getWriter();         out.flush();         out.close();     }


------解决方案--------------------------------------------------------
<form action="/vats/upfileServlet.do" method="post" encType=multipart/form-data >
upfileServlet.do 这个不是struts1吗?不加.do是servlet!

如果struts2和servlet结合的话需要在web.xml中加上说明不然提交strut2的时候他会找servlet,应为strut2可以不加.action,那就和servlet提交方式一样了,这个时候就会报404错误,默认系统应该是先找servlet的!希望你在学SSH的时候如果需求用到servlet对你有帮助,mvc 现在java的好像还是用SSH,当然也要看是什么项目,有的也用mvc或者spring mvc
  相关解决方案