我正在将多个Excel文件上传到服务器。对于文件,我使用CommonsMultiPartFile
类。我的问题是,当我尝试处理上传的文件时
File KUStiedosto = new File(form.getKUS().getOriginalFilename());
form.getKUS().transferTo(KUStiedosto);
Workbook KUStk = Workbook.getWorkbook(KUStiedosto);
Sheet KUSl = KUStk.getSheet(0);
for (int r = 7; r < KUSl.getRows() - 1; r++) {
我得到了
java.io.FileNotFoundException: 2601401KUS1007.xls (Access is denied)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.<init>(FileOutputStream.java:179)
java.io.FileOutputStream.<init>(FileOutputStream.java:131)
org.apache.commons.fileupload.disk.DiskFileItem.write(DiskFileItem.java:423)
org.springframework.web.multipart.commons.CommonsMultipartFile.transferTo(CommonsMultipartFile.java:137)
fi.utu.seurantaraporttisuodatin.service.Kustannusraportti.calculateKUS(Kustannusraportti.java:27)
fi.utu.seurantaraporttisuodatin.service.Raportti.createReportContext(Raportti.java:424)
fi.utu.seurantaraporttisuodatin.controller.FormController.onSubmit(FormController.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:174)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
我与服务器的权利有什么关系,或者还有其他什么?我正在使用Netbeans和附加的Tomcat服务器。
答案 0 :(得分:0)
您必须向运行服务器的用户(tomcat?)授予您放置文件的文件夹的写入权限。
答案 1 :(得分:0)
当您致电CommonsMultipartFile.transferTo()
时,您会将对{1}}位置的引用传递给它应该写入上传文件的位置。但是,您的tomcat服务器没有该文件的写入权限。
您需要找出Tomcat正在运行的用户,并确保该用户具有该文件位置的写入权限。
答案 2 :(得分:0)
我在Windows 7的框中遇到过这个问题。其主要原因是访问限制。
您有两个选择: