Problema com upload de arquivos

0 respostas
brunorota

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

Criado 20 de agosto de 2010
Respostas 0
Participantes 1