Upload

0 respostas
louis_bb

Eai pessoal...

To com varias duvidas, agradeceria se alguem pudesse me ajudar...

To tentando fazer um upload de imagem, porem quando vou fzr o upload me deparo com o seguinte erro :

[color=red]java.lang.LinkageError: loader constraint violation: when resolving method "org.apache.commons.fileupload.servlet.ServletFileUpload.(Lorg/apache/commons/fileupload/FileItemFactory;)V" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, controller/inserir/ServletUpload, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, org/apache/commons/fileupload/servlet/ServletFileUpload, have different Class objects for the type org/apache/commons/fileupload/FileItemFactory used in the signature
controller.inserir.ServletUpload.doGet(ServletUpload.java:46)
controller.inserir.ServletUpload.doPost(ServletUpload.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)[/color]

minha servlet Upload ta assim:

public class ServletUpload extends HttpServlet{

    //Initialize global variables
    public void init() throws ServletException {

    }

    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
                       throws ServletException, IOException {
        doGet(request, response);
    }

 
    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    	boolean isMultiPart = FileUpload.isMultipartContent(request);
        if (isMultiPart) {
        	FileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload upload = new ServletFileUpload(factory);
            String formulario = "";
            try {
            	List items = upload.parseRequest(request);
            	Iterator iter = items.iterator();
            	while (iter.hasNext()) {
            		FileItem item = (FileItem) iter.next();
                    if (item.getFieldName().equals("tipoForm")) {
                    	formulario = item.getString();
                    }
                    if (!item.isFormField()) {
                    	if (item.getName().length() > 0) {
                    		this.inserirImagemDiretorio(item);
                        }
                    }
               }

            } 
            catch (FileUploadException ex) {
            	ex.printStackTrace();
            } 
            catch (Exception ex) {
            	ex.printStackTrace();
            }
        }
    }
    
    private void inserirImagemDiretorio(FileItem item) throws IOException {
    	//Pega o diretório /logo dentro do diretório atual de onde a 
        //aplicação está rodando
        String caminho = getServletContext().getRealPath("/logo") + "/";
        
        // Cria o diretório caso ele não exista
        File diretorio = new File(caminho);
        if (!diretorio.exists()){
        	diretorio.mkdir();
        }

        // Mandar o arquivo para o diretório informado
        	String nome = item.getName();
            String arq[] = nome.split("\\\\");
            for (int i = 0; i < arq.length; i++) {
                nome = arq[i];
            }
            File file = new File(diretorio, nome);
            FileOutputStream output = new FileOutputStream(file);
            InputStream is = item.getInputStream();
            byte[] buffer = new byte[2048];
            int nLidos;
            while ((nLidos = is.read(buffer)) >= 0) {
            	output.write(buffer, 0, nLidos);
            }
            output.flush();
            output.close();
    }
}

Alguém tem ideia do porque do erro?!

Outra duvida é, se eu quiser instancia um objeto com o caminho dessa imagem?! como eu faria? Qual seria o parametro pro objeto!?

Valeu!

Criado 19 de outubro de 2007
Respostas 0
Participantes 1