Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kania

[Resolvido] Limitar tamanho do arquvivo com SaFileUp

Recommended Posts

Bom dia pessoal, gente estou usando o componente SaFileUp que tem no servidor da Locaweb para Uploada de imagens e arquivos.

Bom o fato é so seguinte, na documentação do SaFileUp eles informam que a condição MaxBytes que prevê limitar o tamanho do arquivo enviado, esta não emite um código de erro.

Alguém saberia me informar como poderia emitir uma mensagem de erro para o usuário informando que o arquivo que ele está enviando é maior do que o permitido?

 

Hoje eu já tenho a configuração assim:

 

'Defino o tamaho máximo do arquivo a ser enviado
FotoUser.MaxBytes = 102400 'permitir arquivos de até 100 Kb

Porém como não tenho retorno de um código de erro, não entendi como fazer uma comparação do valor máximo permitido e com o real tamanho do arquivo que se esta tentando enviar e então emitir o erro.

Sei que o SaFileUp tem um condição chamada TotalBytes que pega o total de bits enviado ao servidor, porem não funciona esta comparação, tem alguma outra forma de fazer isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que o SaFileUp tem um condição chamada TotalBytes que pega o total de bits enviado ao servidor, porem não funciona esta comparação,

Como assim não funciona a comparação. Teoricamente se você consegue saber o tamanho do arquivo que está sendo enviado, criar uma simples condição seria o suficiente, não?

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, esta deveria ser a lógica, mas não está funcionando:

 

veja como fiz a comparação

 

SaFileUp.MaxBytes = 102400

If SaFileUp.TotalBytes > SaFileUp.MaxBytes Then
			
   Response.Write "<div class=""erro"">Você tentou enviar um arquivo maior do que o permitido! " & FormatNumber(SaFileUp.TotalBytes,0) & "Kb<script language=""javascript"">setTimeout('$("".erro"").slideUp(""slow"");',5000)</script></div>"
			
Else
		
   'Salva o arquivo no servidor
   SaFileUp.Save

End If

Na documentação do componente diz o seguinte (texto traduzido)

 

No script de upload de processamento (formresp.asp), MaxBytes está definido para 1000. Isso significa que FileUp vai guardar até 1000 bytes de cada arquivo enviado. Se você tentar carregar um arquivo maior que 1.000 bytes, observe que apenas os primeiros 1000 bytes seriam gravados no disco rígido. Nenhum erro será gerado, indicando que o arquivo foi truncado.

 

MaxBytes é leitura / gravação de propriedade, o que significa que é possível tanto para definir o seu valor e recuperar o seu valor.

 

Como a configuração MaxBytes trunca o arquivo sem levantar um erro, o código do servidor é configurado para exibir o número de bytes enviados pelo navegador em relação ao número de bytes guardados no servidor. Esta é uma comparação entre Request.TotalBytes e propriedade FileUp de TotalBytes.

 

Você deve ter notado que o número total de bytes transmitidos por você é maior que o tamanho do seu arquivo original no sistema de arquivos do cliente. Isso é normal, uma vez que o navegador deve acrescentar informações como cabeçalhos e informações de codificação. Request.TotalBytesreports o total, incluindo o arquivo, codificação de informações e outros elementos de formulário que podem estar presentes.

 

Agora como emitir este bendito aviso?

Ai lendo mais um pouco da documentação achei o seguinte MaxBytesToCancel que pelo que li deve cancelar o envio caso o arquivo seja maior do que o permitido, bom o fato é que setei o item, porewm não só ele não bloqueou o envio, como também não dá nenhum mensagem de erro na tela

 

Consegui resolver, utilizei a propriedade do próprio ASP a Request.TotalBytes e fiz a comparação com a propriedade do componente MaxBytes

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.