Tamanho do arquivo antes do UPLOAD, asp:FileUpload.

555 views
Skip to first unread message

Ygor Thomaz

unread,
Jun 28, 2010, 8:11:14 PM6/28/10
to dotn...@googlegroups.com
Senhores,

estou desenvolvendo uma pequena aplicação utilizando VS 2010 e ASP.NET WebForms.

Tenho uma parte do sistema que faz upload de arquivo. Gostaria de
checar o tamanho do
arquivo antes da aplicação realizar seu upload. Estou usando (asp:FileUpload):

<asp:FileUpload ID="ArquivoUpload" runat="server" />

No .cs só consigo o tamanho do arquivo depois do upload através de:
ArquivoUpload.PostedFile.ContentLength.

Vocês conhecem uma forma de ter em mãos o parametro de tamanho do
arquivo para analise antes da carga no servidor?

Abraços!

--
Best regards, Ygor Thomaz a.k.a CtrlC
Website: http://ctrlclabs.ygorth.net/
"With Great Power Comes Great Responsibility."
Uncle Ben, Spiderman

Bernardo Rezende

unread,
Jun 28, 2010, 8:23:14 PM6/28/10
to dotn...@googlegroups.com
Oi Ygor:
 
Você pode utilizar o objeto FileBytes do FileUpload e acessar seu tamanho através da propriedade Length. Obviamente que o tamanho obtido será em bytes, o que pode ser facilmente convertido para a sua unidade de medida de informação desejada.
 
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail
do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."

==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail
do Grupo: list...@googlegroups.com


[]z
--
Bernardo Bosak de Rezende
http://bernardorezende.blogspot.com/ - Arquitetura e Desenvolvimento .NET

"The weather-cock on the church spire, though made of iron, would soon be broken by the storm-wind if it did not understand the noble art of turning to every wind."
Heinrich Heine

Ygor Thomaz

unread,
Jun 28, 2010, 9:07:00 PM6/28/10
to dotn...@googlegroups.com
Excelente Bernardo,

utilizei exatamento o que você recomendo e funciono perfeitamente. Já
tinha estudado o FileBytes do FileUpload, mas no calor da batalha
não pensei na propriedade Length que retorno em int o tamanho do
arquivo antes da carga.

int tamanhoArquivoUpload = ArquivoUpload.FileBytes.Length;

Muito obrigado!

Em 28 de junho de 2010 21:23, Bernardo Rezende
<bernard...@gmail.com> escreveu:

Ygor Thomaz

unread,
Jun 28, 2010, 10:02:21 PM6/28/10
to dotn...@googlegroups.com
Bernardo,

fiz um teste apos a codificação com um HTTP Sniffer.

Request Count: 1
Bytes Sent: 48.418.589
Bytes Received: 0

e antes do ArquivoUpload.FileBytes ser instanciado o upload acontece.
Chato isso!

Tem alguma ideia?

Abraços!

Bernardo Rezende

unread,
Jun 28, 2010, 10:09:56 PM6/28/10
to dotn...@googlegroups.com
Ygor:

Tem certeza que o upload acontece por causa do objeto FileBytes? Como está o código que faz o upload?


Em 28 de junho de 2010 23:02, Ygor Thomaz <ygo...@gmail.com> escreveu:

e antes do ArquivoUpload.FileBytes ser instanciado o upload acontece.

Você quis dizer instanciado mesmo ou acessado? Se for instanciado não entendi o que você quis dizer ou precisaria ver aonde o seu código "instancia" o objeto, lembrando que essa prop é read-only.

[]z

Ygor Thomaz

unread,
Jun 28, 2010, 10:36:12 PM6/28/10
to dotn...@googlegroups.com
Opa,

o upload pelo que entendi é realizado no objeto: <asp:FileUpload ID="ArquivoUpload" runat="server" />

Fiz a seguinte simulação, liguei meu http sniffer logo depois abri o site e enviei um arquivo na esperança do mesmo ser barrado nesta clausula:

                if (ArquivoUpload.FileBytes.Length <= ArquivosBL.PegaLimiteUpload())
                {
...
else { CAI FORA }

Abração!

Porém o proprio debug só processa no VS2010 quando o upload termina, assim o ArquivoUpload.FileBytes já esta instanciado e com a informação de tamanho. Ou seja, o upload já aconteceu.

Ygor Thomaz

unread,
Jun 28, 2010, 10:40:45 PM6/28/10
to dotn...@googlegroups.com
Opa,

Bernardo. Olha pelo que estou lendo para pegar o tamanho do arquivo
antes de realizar o UPLOAD é necessario de permissão de acesso
(PrivilegeManager), encontrei diversas classes javascript que
requisitam esta permissão para checar o tamanho do arquivo. Se for
desta forma para meu projeto é melhor apostar no velho e bom time-out.

Abraços!!!

Paulo S. M. Marques

unread,
Jun 29, 2010, 8:10:33 AM6/29/10
to dotn...@googlegroups.com
Utiliza um componente FLASH ou SILVERLIGHT para upload de arquivos, vou dar o exemplo do GWT Upload

http://code.google.com/p/gwtupload/



2010/6/28 Ygor Thomaz <ygo...@gmail.com>



--
Atenciosamente,

Paulo S. M. Marques - @psmarques
Analista de Sistemas
MCP / MCTS Web
Reply all
Reply to author
Forward
0 new messages