在网上下了个例子 然后支上 但是他的传图片功能不好使 我也看不明白 请问这应该怎么改这是输出的内容
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)
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)
导致最后组装出来的文件路径是错误的。
修改下:
name = name.substring(name.lastIndexOf("\\") + 1);
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;
}你参照着试试看