Struts - Bug no Submit com FormFile, em alguns browsers
6 respostas
marcelo.bellissimo
Pessoal, estou começando com Struts e estou com uma duvida…
Estou usando um campo FormFile para fazer upload de um arquivo para processamento no meu aplicativo, porém no browser acontece algo estranho…
Parece que sempre que é digitado algo que não tenha o formato de um caminho de arquivo (c:\pasta\arquivo.txt …) o botão Submit para de funcionar… se eu digitar ‘abc’ por exemplo, e tentar clicar no submit, nada acontece, nada mesmo… não entra no execute(), nem nada…
Alguém já viu isso? É algum erro da minha aplicação, ou será um bug do browser ou do próprio framework?
Uso o Struts 1.3.5, e fiz testes no IE e no FX.
mas vc tah querendo q ele faca alguma coisa qdo o arquivo digitado n existe?
tipo, acho melhor vc bloquear o campo pra digitacao, e deixar liberado apenas a opcao d escolher o arquivo naquele botao… mais seguro neh n?
marcelo.bellissimo
Então, eu pretendia fazer alguma validação, por exemplo, informar que o cara digitou alguma abobrinha no campo… mas com esse bug esquisito ai nem isso dá pra fazer… e o botão submit fica inutilizado, não dá nem pra informar pro usuário que é preciso limpar o campo pra poder prosseguir… entende o problema?
Se o cara digitar uma letrinha só sequer, ele trava a página e minha aplicação fica lá sem fazer nada, e isso é intolerável para o usuário, depois sobra pra mim… :lol:
A sua alternativa é boa, mas como exatamente faço isso, já que o unico meio “não-javascript” de fazer isso (que eu saiba) é setando o parametro “disabled” do html:file pra “true” ?
foxpv
eh… n da pra usar o disabled n pq ele desabilita o campo inteiro inclusive o botao
teria q ser via javascript msm… pelo menos agora n me vem outra maneira na cabeça de faze-lo
foxpv
mas engraçado, eu testei o html:file aqui, e qdo eu digitei alguma coisa invalida n travou nd n… apenas na hora do submit ele considerou q o campo estava vazio…
marcelo.bellissimo
É, isso também é estranho… esse FormFile é meio esquisito pois mesmo quando eu informo um caminho de um arquivo que não existe, ele “magicamente” lê alguma coisa, quer dizer, o arquivo não é passado como ‘[color=#7F008E]null[/color]’ e nem é gerada uma exceção de FileNotFoundException … eu que tive que fazer minha própria rotina pra verificar se ele realmente está pegando um arquivo ou não (baseado no conteúdo desse arquivo que ele “magicamente” lê) e depois fazer um ‘[color=#7F008E]throw new[/color] FileNotFoundException();’
foxpv
pois eh cara… mas o mais estranho eh q no meu aqui funcionou direito sem essas esquisitices ae… seria legal c vc escrevesse o seu código aqui pra eu ver c tem alguma coisa diferente…