| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 14:32:25
|
otaviopfonseca
Entusiasta Java
Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline
|
Olá,
Agora estou com outro problema, preciso de alguma forma de recuperar o caminho de um arquivo a partir de uma página da web. Primeiramente eu tentei utilizar um input html com type="file", mas isto recupera apenas o nome e extensão do arquivo, não o caminho completo, além de preparar o arquivo para upload na página. O que eu preciso é apenas o caminho do arquivo para ser armazenado. Importante ressaltar que esse caminho deve corresponder a um arquivo que está no cliente, e não no servidor.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 15:00:36
|
Minduin
Thread.start()
![[Avatar]](/images/avatar/43c656628a4a479e108ed86f7a28a010.jpg)
Membro desde: 02/03/2005 11:05:35
Mensagens: 34
Localização: São Paulo - Zona Sul - Jabaquara
Offline
|
Só para poder responder para você de forma correta
- Qual a estrutura que você tá usando?
- Você quer recuperar o caminho inteiro do arquivo do lado do cliente é isso?
|
"O importante é o que Importa"
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 15:10:35
|
otaviopfonseca
Entusiasta Java
Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline
|
Agora eu estou utilizando um button e um input do tipo texto. A ideia é que o botão abra uma janela de navegação de arquivos e depois que o arquivo for selecionado, o input seja preenchido com o caminho completo para este arquivo. E, sim, eu preciso recuperar o caminho do lado do cliente, mas apenas o caminho, sem fazer o upload do arquivo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 15:13:01
|
soaresinfo
JavaEvangelist
![[Avatar]](/images/avatar/a424ed4bd3a7d6aea720b86d4a360f75.png)
Membro desde: 27/07/2003 15:40:13
Mensagens: 373
Localização: Uberlândia/MG
Offline
|
O problema é que depois de fazer o submit, só o nome do arquivo permanece na variável do form. Uma forma de contornar isso é copiar o valor do input file em algum campo hidden, aí você pode ler esse hidden com o caminho completo. Nunca fiz isso, mas acredito que possa funcionar. Ah, você precisa copiar o conteúdo e jogar na hidden usando javascript, antes de dar o submit.
|
Anuncie aqui! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/02/2012 15:34:21
|
otaviopfonseca
Entusiasta Java
Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline
|
Eu vou tentar fazer isto, mas quando o arquivo é selecionado, aparece na página apenas o nome do arquivo com a extensão. Isso quando utilizado o input do tipo file.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/02/2012 21:17:15
|
spidermanx
Debugger
Membro desde: 30/01/2011 21:02:19
Mensagens: 57
Offline
|
Até onde sei é impossível pegar o caminho completo para upload de arquivos, pois o controle do campo file fica a cargo do navegador (por questões de segurança o navegador bloqueia qualquer outra forma de acesso via script e liberando o arquivo para o servidor ao submeter a página). É por isso que javascript consegue pegar apenas o nome do arquivo e sua extensão, pois o caminho completo o navegador esconde do javascript, algo +/- desse tipo.
Um exemplo clássico disso é o fato de validar arquivo (tamanho, extensão, etc) via ajax, não dá.
Ouvi dizer também que esse controle pode ser liberado pra quem usa navegador Firefox (creio que pelo about:config), mas não é uma boa recomendação.
This message was edited 1 time. Last update was at 14/02/2012 21:18:59
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2012 10:00:01
|
otaviopfonseca
Entusiasta Java
Membro desde: 20/06/2011 21:24:56
Mensagens: 21
Offline
|
Eu vi isso, acabou que eu tive vários problemas em relação a isso. Mas o meu cliente utiliza o Internet Explorer, e tem uma opção de configuração que permite a exibição do endereço do link. Porém eu ainda tive alguns problemas na hora de submeter o form, pois no framework q eu utilizo os forms são submetidos via javascript. E os navegadores bloqueiam algumas funções javascript que tentem acessar o input tipo file. Mas eu consegui resolver todos estes problemas utilizando um campo de texto normal e um botao e colocando o input file com style="display:none". Coloquei o evento onClick do botão para acionar o evento click do input file e o evento onChange do input file pra setar o valor de um campo de texto (txtPath). Com isso eu consegui recuperar o caminho a partir do campo de texto. Funciona no IE, no Chrome não funciona e no FireFox eu não testei.
Para resolver o problema de submeter via javascript, o botão que aciona o evento submit remove a tag do input file antes de submeter. Aí o problema se resolve, pois eu consigo enviar para o servidor o caminho completo do arquivo e salvar no banco de dados. Mas valeu pela ajuda aí. Problema Resolvido.
ps: minha explicação ficou bem + ou - mas o código vai ajudar a entender
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/02/2012 19:42:49
|
spidermanx
Debugger
Membro desde: 30/01/2011 21:02:19
Mensagens: 57
Offline
|
Realmente, já ouvi sobre essas configurações que o IE libera, porém provavelmente em outros navegadores não irá funcionar, porque como sempre (sem julgar a tecnologia), pra fazer as coisas no IE é usando recursos alternativos (vulgo gambiarra, rsrsrs).
Mas parabéns pela solução, eu tive de usar algo parecido para validar imagens (extensão e tamanho) pelo php, tive de mandar para um iframe oculto (pois assim o php já tinha acesso e conseguia validar).
Mas já dizia Elis Regina... Vivendo e aprendendo a jogar... nem sempre ganhando, nem sempre perdendo mas, aprendendo a jogar... abraço e boa sorte.
|
|
|
 |
|
|