Upload de arquivo, e quando não existe o arquivo?

Olá pessoal,

Estou tendo um pequeno probleminha, mas acredito que alguém já tenha passado por isso. Eu estou fazendo o upload de um arquivo em um formulário web. Tudo funciona perfeitamente. O único problema é que eu preciso saber quando o arquivo existe. Caso ele exista faz o upload. Caso não exista é para ser exibida uma mensagem personalizada.
O problema é que quando o arquivo não existe, mesmo assim é enviado dados ao servidor. Não sei de onde vem esses dados o cabeçalho http do arquivo é “application/octet-stream”. Mas que dados são esses?

Agradeço desde já.

Mas para verificar se o arquivo existe na maquina do cliente vc precisará de uma Applet assinada e realizar algo do tipo:

                File f = new File ("/usr/local/r.milani/a.txt")
                if (f.exists())
                       ?

Mas no seu formulario HTML como vc indicaria que um arquivo nao existe , desculpe mas nao consigo imaginar
Seu campo nao é um multipart/form-data? , ele ja faz uma pre-validação se ao arquivo existe ou não

<FORM name="frm" ENCTYPE="multipart/form-data" action="" METHOD="POST" onsubmit="return checkForm(this);">

É um formulário HTML. Criar uma Applet assinada no cliente não é interessante… :frowning:

O formulário é sim “multipart/form-data”, mas não é feita nenhuma validação. O problema é justamente esse… ele acaba enviando algum dado, que eu não sei qual é, para o servidor… mas o arquivo não existe. :cry:
Se eu pudesse saber que dados são esses eu poderia validar se foram enviados esses dados, e caso seja, é pq o arquivo não existe.

http://www.w3schools.com/js/tryit.asp?filename=tryjs_formvalidate

adapta isso pro teu caso…

tu vai ter que verificar se o campo de upload tá em branco ou não.

Se o arquivo existir, o proprio sistema operacional vai exibir ele pra ti no PC, tu nao tem como selecionar um “arquivo que não existe”, pode ocorrer alguém alterar o nome na barra, mas isso aih, como o camarada falou, pra ti verificar, soh se tivesse usando uma applet.

O que gostaria é justamente validar no caso do cara alterar o nome do arquivo no input text. Eu sei que ele está enviando dados ao servidor… mas nao sei que dados são esses… :?:

[quote=zirocool]http://www.w3schools.com/js/tryit.asp?filename=tryjs_formvalidate

adapta isso pro teu caso… [/quote]
Era esse link mesmo que vc queria me passar? :expressionless:

Valeu.

[quote=Getware]O que gostaria é justamente validar no caso do cara alterar o nome do arquivo no input text. Eu sei que ele está enviando dados ao servidor… mas nao sei que dados são esses… :?:

[quote=zirocool]http://www.w3schools.com/js/tryit.asp?filename=tryjs_formvalidate

adapta isso pro teu caso… [/quote]
Era esse link mesmo que vc queria me passar? :expressionless:

Valeu.[/quote]

Sim, pra verificar se o input file tá preenchido, as propriedades de retorno de valores são as mesmas de um input text, então é só adaptar.

Mas como o teu caso precisa ser verificada a integridade dos arquivos, infelizmente, a unica maneira que eu conheço, foi a citada pelo camarada q postou antes de mim.

Ou, verifica no server, qual eh o tipo mime do arquivo que tu tah recebendo.

Blza, o MIME é “application/octet-stream”.

Eu vou salvar esses dados em um arquivo e tentar ver o que danado é isso… que dados são esses.
Qqr coisa eu retorno aqui.

Se vc esta recebendo esse MIMETYPE application/octet-stream é alguma extensão de arquivo que Tomcat não reconhece , vc sabe dizer qual é extensao deste arquivo?

[quote=ramilani12]Se vc esta recebendo esse MIMETYPE application/octet-stream é alguma extensão de arquivo que Tomcat não reconhece , vc sabe dizer qual é extensao deste arquivo?

[/quote]

O arquivo vai com o nome que o usuário digitar no input text. Mas o arquivo não existe…

Tentei pegar o arquivo e escrever ele no servidor, pra conseguir identificar o que era. Vem um arquivo vazio pra o servidor. :!:

Descobri uma solução para o problema.

“Vamos ver como a Google faz!” :idea: 8) :lol:

  • Tentei anexar ao GMail um arquivo inexistente para saber como ele se comportava. Enviei o email com um anexo inexistente e quando vi o email enviado… NÃO TINHA ANEXO.
  • Então fiz outro teste… Criei um arquivo vazio e coloquei como anexo a um email no gmal. Quando fui ver o email enviado… NÃO TINHA ANEXO.

Conclusão, validar pelo tamanho do arquivo… caso seja 0 bytes… o arquivo não existe. :wink:
Se a Google faz assim, quem sou eu pra discordar?
HAHahAHa…