Pessoal, bom dia…
Estou tentando fazer o upload de arquivos utilizando o commons-fileupload e estou com problemas para escrever os arquivos.
Primeiramente eu pego o caminho de um arquivo da máquina do usuário, depois gravo este arquivo numa pasta dentro do meu WEB-INF para posterior leitura…
Estou fazendo a leitura de arquivos da seguinte maneira dentro da minha servlet
protected void executeUpload(HttpServletRequest request) throws ServletException, IOException, FileUploadException {
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(getServletConfig().getServletContext()
.getRealPath("/WEB-INF/uploadFiles/")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(50*1024*1024); //50MB
List itemsList = upload.parseRequest(request);
System.out.println("Número de arquivos " + itemsList.size());
for (Object object : itemsList) {
FileItem item = (FileItem) object;
try {
item.write(factory.getRepository());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
No entanto, ao executar este código ele lança uma FileNotFoundException…
Segue o stack:
java.io.FileNotFoundException: C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\SirsUpdateDatabase\WEB-INF\uploadFiles (Acesso negado)
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:439)
at com.telefonica.sirs.update.controller.MainServlet.executeUpload(MainServlet.java:169)
at com.telefonica.sirs.update.controller.MainServlet.doProcess(MainServlet.java:53)
at com.telefonica.sirs.update.controller.MainServlet.doPost(MainServlet.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
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:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
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:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)