Existe alguma maneira de descobrir o tamanho do arquivo antes de enviar o arquivo usando AJAX / PHP em caso de alteração do arquivo de entrada?
javascript
jquery
ajax
file-upload
filesize
Nisanth Kumar
fonte
fonte
Respostas:
Para o HTML abaixo
tente o seguinte:
Veja o seguinte tópico:
Como verificar o tamanho de entrada do arquivo com jQuery?
fonte
FileList.files
é um array-like deFile
objetos, que é uma extensão doGlob
. E de acordo com as especificações ,Glob
realmente define asize
propriedade como o número de bytes (0 para um arquivo vazio). Então, sim, o resultado está em bytes .Trabalhe no IE e FF
fonte
Aqui está um exemplo simples de como obter o tamanho de um arquivo antes de enviá-lo. Ele está usando jQuery para detectar quando o conteúdo é adicionado ou alterado, mas você ainda pode obter
files[0].size
sem usar jQuery.fonte
Eu tive o mesmo problema e parece que não tivemos uma solução precisa. Espero que isso possa ajudar outras pessoas.
Depois de explorar a região, finalmente encontrei a resposta. Este é o meu código para obter o arquivo anexado com jQuery:
Este é apenas o código de exemplo para obter o tamanho do arquivo. Se você quiser fazer outras coisas, sinta-se à vontade para alterar o código para satisfazer suas necessidades.
fonte
Melhor solução funcionando em todos os navegadores;)
de http://www.dotnet-tricks.com/Tutorial/jquery/HHLN180712-Get-file-size-before-upload-using-jquery.html
ATUALIZAÇÃO: usaremos esta função para verificar se é o navegador IE ou não
fonte
fonte
Navegadores com suporte a HTML5 possuem propriedades de arquivos para o tipo de entrada. É claro que isso não funcionará em versões mais antigas do IE.
fonte
A solução de ucefkh funcionou melhor, mas como $ .browser foi descontinuado no jQuery 1.91, ele teve que mudar para usar navigator.userAgent:
fonte
você precisa fazer uma solicitação HEAD ajax para obter o tamanho do arquivo. com jquery é algo assim
fonte
Não use,
ActiveX
pois há chances de ele exibir uma mensagem de aviso assustadora no Internet Explorer e assustar seus usuários.Se alguém quiser implementar essa verificação, deve contar apenas com o objeto FileList disponível em navegadores modernos e com verificações do lado do servidor apenas para navegadores mais antigos ( aprimoramento progressivo ).
fonte
Você pode usar a função de tamanho de arquivo PHP. Durante o upload usando ajax, verifique o tamanho do arquivo primeiro fazendo uma solicitação ajax para um script php que verifica o tamanho do arquivo e retorna o valor.
fonte
Você pode usar a API de arquivo HTML5: http://www.html5rocks.com/en/tutorials/file/dndfiles/
No entanto, você sempre deve ter um fallback para PHP (ou qualquer outra linguagem de back-end que você usa) para navegadores mais antigos.
fonte
Pessoalmente, eu diria que a resposta da Web World é a melhor hoje, dados os padrões HTML. Se você precisar oferecer suporte ao IE <10, precisará usar alguma forma de ActiveX. Eu evitaria as recomendações que envolvem codificação contra Scripting.FileSystemObject ou instanciar ActiveX diretamente.
Nesse caso, tive sucesso usando bibliotecas JS de terceiros, como plupload, que pode ser configurada para usar apis HTML5 ou controles Flash / Silverlight para preencher navegadores que não os suportam. Plupload tem uma API do lado do cliente para verificar o tamanho do arquivo que funciona no IE <10.
fonte