Pegar o caminho completo de um arquivo de upload em uma aplicação web

7 respostas
G

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?

7 Respostas

M

Você já verificou se o arquivo.txt está neste local (C:\Program Files\Apache Software Foundation\Tomcat 6.0\arquivo.txt)?

G

Sim! Verifiquei e não encontrei o arquivo no diretório do Tomcat!

Deixei o arquivo somente no Desktop!

R

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

Ja tentei também mas não deu certo! A tab hidden pega somente o nome do arquivo!

M

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…

Valeu galera?!?

R

Esse atributo não existe…

P

Cara… você conseguiu resolver isso??

Eu estou com o mesmo problema

Criado 4 de setembro de 2008
Ultima resposta 14 de set. de 2012
Respostas 7
Participantes 6