Pegar o caminho completo de um arquivo de upload em uma aplicação web
7 respostas
G
Gustavo_Pires_dos_Sa
Em um formulário utilizo uma tag input type=“file”, para fazer upload de arquivo.
Mas os navegadores Opera, Firefox e Flock não retornam o caminho completo do arquivo, somente o nome.
Tentei com Javascritp e nada.
Então tentei pegar o caminho completo do arquvio pelo método getAbsolutePath() e getCanonicalPath() da classe File.
Mas ao invés de me passar o caminho real do arquivo, estes métodos me passam o caminho da raiz do Tomcat + o nome do arquivo.
Por exemplo, o arquivo está em:
C:\gustavo\Desktop\arquivo.txt
E estes métodos me retornam:
C:\Program Files\Apache Software Foundation\Tomcat 6.0\arquivo.txt
Alguém sabe como faço para pegar o caminho correto?
Você já verificou se o arquivo.txt está neste local (C:\Program Files\Apache Software Foundation\Tomcat 6.0\arquivo.txt)?
G
Gustavo_Pires_dos_Sa
Sim! Verifiquei e não encontrei o arquivo no diretório do Tomcat!
Deixei o arquivo somente no Desktop!
R
ricardosoares
Uma aplicação web (server side) funciona alheio ao browser (client side). Desta forma, o local que ele reconhece é apenas do seu próprio lado, o local que o arquivo foi parar quando “subido”.
Um truque q talvez funcione (não testei, me veio a mente agora), seria fazer um javascript que quando detectasse o local do arquivo (pelo browser), copiaria o conteúdo desta tag INPUT para um outro INPUT do tipo HIDE. E então a aplicação web receberia o arquivo em si no primeiro componente html e o local que veio do client no segundo componente. É uma idéia.
G
Gustavo_Pires_dos_Sa
Ja tentei também mas não deu certo! A tab hidden pega somente o nome do arquivo!
M
mmariano
Galera… tambem passei por este problema tamanho ‘E’(enorme)… por causa dos browsers…
Seguite: no teu input type=“file” existe o atributo src certo??
Entao vc pode setar assim: document.getElementById(“file”).src = document.getElementById(“file”).value;
ai vc pode trabalhar este path… ok?!?
Uma dica pra quem quer eliminar isto no futuro eh pesquisar sobre GWT, pois este framework elimina todos os tratamentos que temos que fazer para cada browser…