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…
Salvar Arquivo diretório aplicação
20 Respostas
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.
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
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” ?
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.
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.
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?
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.
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!
editei o post acima, dê uma olhada…
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?
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.
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();
}
O pior é que este diretório existe amigo !
O mesmo problema aparece
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.
Esta acessando normal o diretório.
Imprime
Coloqeui da forma que vc pediu e deu nisso
Ele esta salvando dentro da pasta do tomcat onde fica minha aplicação
Ele salva na questa dentro do tomcat. Sendo que na minha aplicação mesmo dentro do wordkspace do eclipse nao aparece o arquivo criado.