Problemas com Commons FileUpload

1 resposta
daggoth

Bem, gente, eu baixei essa biblioteca, e estou tendo problemas com a documentação. Lá mostra como usar, mas não mostra quais as bibliotecas que devo colocar no import. Nem na documentação e nem em nenhum tutorial. Com muito sofrimento, conseguí escrever o seguinte código, no arquivo que vai receber o formulário:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
--%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="org.apache.commons.fileupload.disk.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page import="org.apache.commons.fileupload.servlet.*"%>
<%@ page import="org.apache.commons.fileupload.portlet.*"%>
<%@ page contentType="text/html"%>
%><%
   // Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();

// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

// Parse the request
List /* FileItem */ items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
    FileItem item = (FileItem) iter.next();

    if (item.isFormField()) {
        processFormField(item);
    } else {
        processUploadedFile(item);
    }
}
%>

Mas ainda tem um problema: ainda não descobrí qual biblioteca que devo usar para os métodos processFormField e processUploadedFile. Alguém pode me ajudar?
}

1 Resposta

J

Hehehe, na verdade esses métodos é VOCÊ quem vai construir para ou tratar de campos tipo text, checkbox, radio ou um campo do tipo FILE que será o arquivo para upload.

Faça um teste:

if (item.isFormField()) { System.out.println(item.getFieldName()); } else { System.out.println(item.getFieldName()); }

e você verá que serão impressos os nomes dos campos tipo text, checkbox, radio, hidden e o nome do campo do tipo file.

Criado 24 de setembro de 2006
Ultima resposta 25 de set. de 2006
Respostas 1
Participantes 2