Duvidas Basicas sobre fileupload - Nome da imagem e etc

3 respostas
venomtotal

Pessoal, sou novato e to aprendendo a fazer upload.

Resolvir tentar com o fileupload do jakarta

ae usei este fonte manjadao:

<%@ page import="java.io.*" 
          import="java.util.*" 
          import="org.apache.commons.fileupload.*"
          import="org.apache.commons.io.*"%>
 <% 
    boolean isMultipart = FileUpload.isMultipartContent(request); 
   if (isMultipart) { 
   // Cria um novo tratador de file upload 
   DiskFileUpload upload = new DiskFileUpload(); 
   
   // Seta parametros do upload 
   upload.setSizeMax(50*1024*1024); //50Mb 
   upload.setRepositoryPath("c:/temp"); 
   
   // Parse the request 
   List items = upload.parseRequest(request); 
   
   Iterator it = items.iterator(); 
    while (it.hasNext()) { 
     FileItem fitem = (FileItem) it.next(); 
     if (!fitem.isFormField()) { %>
        <%= fitem.getName() %> - 
        <%= fitem.getSize() %> 
        bytes<% 
     } 
  }

}
%>

As Duvidas:

-deste jeito ele so salva o arquivo com extensao tmp e um nome todo louco COMO POSSO FAZER PARA DEFINIR O NOME DO ARQUIVO OU ELE USAR O NOME ORIGINAL?

  • como faco para setar o diretorio como sendo o raiz do servidor de aplicacao?

  • como faco para deletar este arquivo que foi “upado”(é que vou guardar ele no BD, ae depois tenho que apagar ele)

Agradeoc qualquer ajuda

t+

3 Respostas

Maniezo

Meu to com mesmo problema!

H

Cara eu acabei de fazer um programa pra fazer upload e vim aki tentar resolver uns problemas tb! Pra ajudar vcs coloco aki parte do source q eu fiz. Esse é o método processRequest q o NetBeans gera num Servlet. Eu usei o fileupload 1.1.

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        
        if(ServletFileUpload.isMultipartContent(request)){
            ServletFileUpload upload=new ServletFileUpload(new DiskFileItemFactory());
            
            Iterator iterator=null;
            try{
                iterator=upload.parseRequest(request).iterator();
            }catch(FileUploadException ex){
                ex.printStackTrace();
                out.println("Erro processando submissão: "+ex.getMessage());
                return;
            }
            
            while(iterator.hasNext()){
                FileItem item= (FileItem) iterator.next();
                if(!item.isFormField())
                    if("".equals(item.getName()))
                        out.println("Erro: nenhum arquivo foi enviado!");
                    else{
                        String path=getServletContext().getRealPath("/")+"uploaded"+File.separator+item.getName();

                        try{
                            File file=new File(path);
                            item.write(file);
                            fileList.add(path);
                            out.println("Arquivo gravado em "+path);
                        }catch(Exception ex){
                            out.println("Erro gravando arquivo: "+ex.getMessage());
                        }
                    }
            }
            
        }else
            out.println("Erro: página não pode ser acessada diretamente!");
        
        out.close();
    }

venomtotal:

-deste jeito ele so salva o arquivo com extensao tmp e um nome todo louco COMO POSSO FAZER PARA DEFINIR O NOME DO ARQUIVO OU ELE USAR O NOME ORIGINAL?

usa esse codigo aki como referencia, se tiver duvida me pergunta.

String path=getServletContext().getRealPath("/")+"uploaded"+File.separator+item.getName();

                        try{
                            File file=new File(path);
                            item.write(file);
                            fileList.add(path);
                            out.println("Arquivo gravado em "+path);

  • como faco para setar o diretorio como sendo o raiz do servidor de aplicacao?

Como descobrir o path disso eu naum sei…

  • como faco para deletar este arquivo que foi “upado”(é que vou guardar ele no BD, ae depois tenho que apagar ele)

É só usar o objeto File q vc usar pra definir onde ele vai ser gravado. Naum lembro de cór mas tem algum metodo pra apagar arquivos com ele.

aoqfonseca

O jeito que está pegando o arquivo é este mesmo. Só na hora de salvar vc utiliza um objeto file.

Para passar o caminho e nome use o RealPath do servlet

Criado 24 de abril de 2006
Ultima resposta 13 de mai. de 2006
Respostas 3
Participantes 4