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…
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