在网上下了个例子 然后支上 但是他的传图片功能不好使 我也看不明白 请问这应该怎么改这是输出的内容
C:\Documents and Settings\Administrator\桌面\图片\亮度\0.bmp
D:\Tomcat6\webapps\Test\upload
D:\Tomcat6\webapps\Test\upload\pic_1这是报错内容java.io.FileNotFoundException: D:\Tomcat6\webapps\Test\upload\pic_1\C:\Documents and Settings\Administrator\桌面\图片\亮度\0.bmp (文件名、目录名或卷标语法不正确。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:439)
at web.FriendActionServlet.service(FriendActionServlet.java:135)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    对变量name没有处理好,name还带着完整的:“C:\Documents and Settings\Administrator\桌面\图片\亮度\0.bmp”
    导致最后组装出来的文件路径是错误的。
    修改下:
      name = name.substring(name.lastIndexOf("\\") + 1);
      

  2.   

    public String upload(){
    HttpServletRequest request = ServletActionContext.getRequest();
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    String rootpath = ServletActionContext.getServletContext().getRealPath("/");
    try {
    List item = upload.parseRequest(request);
    Iterator it = item.iterator();
    while(it.hasNext()){
    FileItem fileItem = (FileItem)it.next();
    if(!fileItem.isFormField()){
    if(fileItem.getName() != null && !"".equals(fileItem.getName())){
    System.out.println("原文件名:"+fileItem.getName());
    System.out.println(fileItem.getContentType());
    System.out.println(fileItem.getFieldName());
    File file = new File(rootpath+"/img"+fileItem.getName()+".jpg");
    fileItem.write(file);
    this.printMessage(this.OPERATE_SUCCESS);
    }
    }
    }
    }  catch (Exception e) {
    e.printStackTrace();
    }
    return null;
    }你参照着试试看