tomcat后台报异常:webapps\FileUpload\upload拒绝访问,可文件确上传上去了
各位大侠,大家下午好。
最近在忙文件上传的东西,在网上找了几个案例,终于被我找到一个可以成功上传的例子。
这个例子能够将文件上传上去,但tomcat后台说文件拒绝访问,还有一大堆的exception......可文件确真的是传上去了......
贴上servlet处理代码:
- Java code
package com.test.servlet;import java.io.File;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;public class UploadServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // super.doPost(arg0, arg1); request.setCharacterEncoding("UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); String path = request.getSession().getServletContext().getRealPath( "/upload"); factory.setRepository(new File(path)); factory.setSizeThreshold(1024 * 1024); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> list = upload.parseRequest(request); for (FileItem item : list) { if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString("UTF-8"); request.setAttribute(name, value); } else { String name = item.getFieldName(); String value = item.getName(); int start = value.lastIndexOf("\\"); String fileName = value.substring(start + 1); request.setAttribute(name, fileName); item.write(new File(path, fileName)); } } } catch (Exception e) { e.printStackTrace(); } request.getRequestDispatcher("/result.jsp").forward(request, response); }}- Java code
java.io.FileNotFoundException: D:\apache-tomcat-6.0.29\webapps\FileUpload\upload (拒绝访问。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(Unknown Source) at java.io.FileOutputStream.<init>(Unknown Source) at org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:416) at com.test.servlet.UploadServlet.doPost(UploadServlet.java:47) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 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.Http11AprProcessor.process(Http11AprProcessor.java:861) at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) at java.lang.Thread.run(Unknown Source)
希望哪位大虾能够指点一二,谢谢了
[解决办法]
帮你查了一下,好像是有类似权限问题。
有一个消极的解决方法就是
try{}catch(Exception){}
在catch块儿里什么都不做。
看看能解决不。
只要功能能实现就可以了吧
[解决办法]
还有一个方法就是给D:\apache-tomcat-6.0.29\webapps\FileUpload\upload文件夹设置权限。
[解决办法]
D:\apache-tomcat-6.0.29\webapps\FileUpload\upload 右键安全-》 everyone ,如果是权限问题,不能保存吧,还是调试一下吧