Olá galera
Estou seguindo um livro do Edson Gonçalves
E estou na parte de Upload de Arquivos
A classe compila certinho mas quando eu seleciono o arquivo e envio, o arquivo não é enviado
segue o código
public class UploadBean {
private DiskFileItemFactory fileUpload = new DiskFileItemFactory();
private ServletFileUpload sfu = new ServletFileUpload();
private String diretorio;
private String fileName;
public void setDiretorio(String diretorio){
this.diretorio = diretorio;
}
public String getDiretorio(){
return diretorio;
}
public String getFileName(){
return fileName;
}
public boolean doFilePost(HttpServletRequest request, ServletContext context){
if(request.getContentType() == null){
return false;
}
if(!request.getContentType().startsWith("multipart/form-data")){
return false;
}
String patch = context.getRealPath(getDiretorio());
try{
List list = sfu.parseRequest(request);
Iterator iterator = list.iterator();
while(iterator.hasNext()){
FileItem item = (FileItem) iterator.next();
if(!item.isFormField()){
fileName = item.getName();
if((fileName != null) && (!fileName.equals(""))){
fileName = (new File(fileName)).getName();
item.write(new File(patch + "/"+ fileName));
}
}
}
}catch(FileUploadException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return true;
}
}
o jsp.
<body>
<jsp:useBean id="upl" scope="page" class="bean.UploadBean" />
<jsp:setProperty name="upl" property="diretorio" value="arquivos" />
<%
if(upl.doFilePost(request, application)){
out.println(upl.getFileName());
}
%>
<form method="post" action="fazendoUploadComJsp.jsp" enctype="multipart/form-data">
Arquivo: <input type="file" name="file" /> <br />
<input type="submit" name="submit" value="Enviar" />
</form>
</body>
A exception lançada no momento que eu clico no botão enviar
java.lang.NullPointerException: No FileItemFactory has been set.
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:354)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
at bean.UploadBean.doFilePost(UploadBean.java:48)
at org.apache.jsp.fazendoUploadComJsp_jsp._jspService(fazendoUploadComJsp_jsp.java:79)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
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:636)
Se alguém ae puder me ajudar com esse problema
Ficarei grato ^^
Valew