Salvar Arquivo diretório aplicação

20 respostas
drsmachado

Ok. E quer que adivinhemos por que isto não ocorre, certo?
Posta o código. Se existir exception, posta a pilha de erros…
Se não tem erros, também informa…

20 Respostas

drsmachado

Bom, essa é simples.
Não existe o path especificado para o arquivo ser salvo.
Precisa certificar-se de que o caminho é exatamente o mesmo que você está indicando como local para salver o pdf.

Rodrigo_Sasaki

tem uns detalhes estranhos aí, cara…

você tem um método que recebe 2 File e esse mesmo método chama um outro método que copia um arquivo a outro

você manda 2 parâmetros pra ele, mas não utiliza nenhum, dentro dele está pegando valores fixos denovo, não utilizando os parâmetros, mas até aí seu código deveria funcionar normalmente

O problema no seu método copyFile, ao invés de ter um arquivo como ‘out’ você tem um diretório, acho que deveria especificar um arquivo dentro desse diretório na hora de instanciar o File, mais ou menos assim:

copyFile(upload, new File( localPath + "/SAP/WebContent/dir_arquivo/arquivonovo.txt") );

só um exemplo, qualquer outro nome ou extensão que você quiser usar…

abraço

Rodrigo_Sasaki

não sei não cara… o erro diz que o diretório não pode ser encontrado… ja tentou gravar escrevendo a string do path inteira … por exemplo “C:\teste\arquivo.txt” ?

kritiuns

Então o problema é que vc está apontando para a pasta errada …

C:\eclipse\SAP\WebContent\dir_arquivo

tente acessar esse caminho pelo executar do windows.

kritiuns

amigo só para tirar uma duvida Crie uma nova classe com o método main e execute o seguinte comando:

System.out.println(System.getProperty("user.dir"));

compartilhe com o pessoal o resultado.

kritiuns

então acho que você não deveria colocar o SAP na string novamente… a não ser que realmente esteja assim…

experimente alterar de :

copyFile(upload, new File( localPath + "/SAP/WebContent/dir_arquivo/arquivonovo.txt") );

para

copyFile(upload, new File( localPath + "/WebContent/dir_arquivo/arquivonovo.txt") );

porque acho que ele está montando assim “C:\eclipse\workspace\SAP\SAP\WebContent\dir_arquivo”

sacou?

kritiuns

essa pasta é realmente a que você quer acessar? ela não existia no post anterior…

mande pra gente o caminho da pasta que você quer acessar, e a pilha do erro mais completa, com uma linha dá até pra identificar o erro, mas fica complicado…

faça novamente o processo de verificar se a pasta existe com esse caminho

C:\eclipse\SAP\WebContent[b]DIRETORIOARQ[/b]\

Edit:

Estou olhando seu código, e acho que o problema pode estar no arquivo que será copiado, talvez não no outro.
tente usar os atributos que você passou no método

public void moveArquivoDiretorio(File antigo, File novo) {

use os parâmetro ‘antigo’

fazendo assim

public void moveArquivoDiretorio(File antigo, File novo) {

		String localPath = System.getProperty("user.dir");

		copyFile(antigo, new File(localPath + "/SAP/WebContent/dir_arquivo/"));

	}

você deve usar o parâmetro ‘novo’ também, mas como estamos testando, tente dessa maneira.

kritiuns

não era isso que vc queria ?

se vc está falando de salvar este arquivo no diretório do usuário que está logado no OS vc tem que utilizar

System.getProperty("user.home");

e não esse

System.getProperty("user.dir");

utilizando o de cima verifique novamente se a estrutura de pasta está criada (‘SAP’ ‘WebContent’ e etc, não vão existir la)

Abraço!

kritiuns

editei o post acima, dê uma olhada…

diogozero

Esse getUpload faz o que exatamente? Estou tentando fazer exatamente o que foi respondido nesse tópico… mas na parte do getUpload eu não sei o que você fez. Pode postar?

I

Boa Tarde Javeiros !!!

Estou criando uma aplicação web onde criei um diretorio para arquivos .pdf(eu preciso salvar no banco e diretório), já consegui salvar no banco de dados porém não estou conseguindo armazenar no diretório da aplicação especificamente dentro da pasta “/WebContent/arquivos/”.

Estou utilizando o Struts 2 com JPA. Só para deixar claro que o único problema que estou tendo é em armazenar o Arquivo no diretório, to conseguindo capturar o arquivo direitinho, não estou conseguindo apenas copiar para o diretório da aplicação.

Agradeço a quem ajudar.

I
public class UploadWBAction extends ActionSupport implements SessionAware { 
 
public void salvarDiretorioAnexo() {

    //getUpload() é o arquivo que foi selecionado no meu browser. Esta capturando tudo ok ;

    moveArquivoDiretorio( getUpload() , novo);

 } 
  
 
 public void moveArquivoDiretorio(File antigo , File novo ){  
    	
    	String localPath = System.getProperty("user.dir");
    	
	copyFile(upload, new File( localPath + "/SAP/WebContent/dir_arquivo/") );   
          
    }  


  private static void copyFile(File in, File out) {          
        try {  
            FileChannel sourceChannel = new FileInputStream(in).getChannel();  
            FileChannel destinationChannel = new FileOutputStream(out).getChannel();  
            sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);  
            sourceChannel.close();  
            destinationChannel.close();  
        } catch (IOException ex) {  
            ex.printStackTrace();   
        }  
    }  
 
   //gets() e sets();
}
I

O pior é que este diretório existe amigo !

I

O mesmo problema aparece

I

Informando diretamente funciona…Só que não resolveria meu problema, quando eu jogar a aplicação para o Servidor de Aplicação daria problema por não encontrar o diretório.

Mas funcionou direitinho eu informando o local diretamente.

I

Esta acessando normal o diretório.

I

Imprime

I

Coloqeui da forma que vc pediu e deu nisso

I

Ele esta salvando dentro da pasta do tomcat onde fica minha aplicação

I

Ele salva na questa dentro do tomcat. Sendo que na minha aplicação mesmo dentro do wordkspace do eclipse nao aparece o arquivo criado.

Criado 17 de maio de 2011
Ultima resposta 17 de mai. de 2011
Respostas 20
Participantes 5