Erro ao renomear arquivo em upload

2 respostas
denis_gariglio

Fala pessoal ... tudo em ordem por ae?

Pessoal, seguinte ... fiz um upload para minha aplicação e esta funfando de boa, porem eu gostaria de alterar o nome do arquivo de upload para no meu caso o codigo da movimentação.
Segue meu codigo:

public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        HttpSession sessao = request.getSession();
        UploadArqForm uploadForm = (UploadArqForm) form;
        sessao.setAttribute("camposBrancos", "N");
        String tipoReq = request.getParameter("reqCode");
        request.setAttribute("buscaTit", "");// evitar que abra 2 busca por
        // titular(verificar em validações
        // de campo em branco do form)
        Login login = (Login) sessao.getAttribute("usuLogado");
        Integer codMov = (Integer) sessao.getAttribute("nroProt2");

        sessao.removeAttribute("nroProt2");

        FormFile arquivo = uploadForm.getArquivo();
        
        String teste = "denis.zip";
        
        try{
   
               arquivo.setFileName("nometeste");
 
        } catch(Exception e){
            
            logger.error(e);
            
        }
        
        // INICIO -- Trecho onde vai efetuar o upload dos arquivos

        ResourceBundle res = ResourceBundle
                .getBundle("br.com.agsi.struts.ApplicationResources");
        String caminho = res.getString("bennet.caminhoarquivos.display").trim();

        try {
            int codEmpresa = login.getEmpresa().getCodigo();

            File dir = new File(caminho + codEmpresa);
            boolean result = dir.mkdirs();
            System.out.println("retornou: " + result);

            EnviaArquivo enviaFtp = new EnviaArquivo(uploadForm.getArquivo()
                    .getInputStream(), caminho + codEmpresa + "/"
                    + "protocolo=" + codMov + "__" + arquivo);
        } catch (Exception e) {
            logger.error(e);
        }
        // FIM -- Trecho onde vai efetuar o upload dos arquivos

        // INICIO -- Atualiza o status do upload de arquivo

        boolean verificaStatus = ControleFactory.getInstance()
                .getMovUsuControle().atualizaUpload(codMov);

        // FIM -- Atualiza o status do upload de arquivo

        if(verificaStatus == true){
            
            return mapping.findForward("sucessoupload");
            
        } else if (verificaStatus == false) {
            
            return mapping.findForward("falhaupload");
            
        }
        
        
        return null;
    }
No trecho onde utilizei -
arquivo.setFileName("nometeste");

Mas ele me retorna o seguinte erro

[20120105084257] ERROR - br.com.agsi.entidades.dao.MovimentoUsuarioDAOMySql - java.lang.UnsupportedOperationException: The setFileName() method is not supported.

Alguem tem ideia do que pode estar ocorrendo?

Vlwww moçada

[]s

2 Respostas

Hebert_Coelho

Pq vc não altera o nome do arquivo aqui:

new EnviaArquivo(uploadForm.getArquivo() .getInputStream(), caminho + codEmpresa + "/" + "protocolo=" + codMov + "__" + arquivo);

Vc já faz o getInputStream(), ou seja, os dados já estão indo e pelo que me parece vc depois passa o caminho completo certo?

denis_gariglio

Então … acabei fazendo de outra maneira … utilizei a concatenação do nome com o codigo de movimentação e salvei no BD … assim acabou sendo mais rapido e funfou muito bem para o que precisava.
Mesmo assim … muito obrigado pela dica.

Abração

Criado 5 de janeiro de 2012
Ultima resposta 5 de jan. de 2012
Respostas 2
Participantes 2