Atualizado em 29 de Maio de 2013

Descobrindo Tamanho do Arquivo com PHP

Olá pessoal,

No post de hoje vamos ver mais uma dica sobre validações, vamos aprender como descobrir o tamanho de uma arquivo com o PHP através do comando filesize.

Imagine se você tem uma área de uploads em seu site e quer restringir que os arquivos enviados tenham no máximo 2MB de tamanho (lembrando que este comando retorna sempre o tamanho em bytes).

Veja o exemplo do comando filesize:

<?php
$arquivo = 'video-teste.mp4';

if(filesize($arquivo) < 2097152)
 {
  echo 'Seu arquivo foi aceito.';
 }
else
 {
  echo 'Seu arquivo e maior do que o permitido.';
 }
?>

Obs.: Como o tipo inteiro do PHP é sinalizado e muitas plataformas utilizam inteiros de 32 bits, filesize() pode retornar resultados inesperados para arquivos que sejam maiores que 2 Gb. Para arquivos entre 2 Gb e 4 Gb você pode resolver esse problema utilizando sprintf("%u", filesize($file)).


E isso aí pessoal, até a próxima.


Gostou do post, continue por dentro das dicas de programação!!! Assine a newsletter.

Tags:  Comandos PHP | PHP

Comentários

Sua foto do perfil

Sergio

Esse comando não roda nem com reza brava. O erro é este:
filesize(): stat failed for

o uso está assim:

$praga = filesize($way);
echo $praga;

O que pode ser?

07 de Abril de 2015 - 00:48

Sua foto do perfil

Mauricio Programador

Olá Sergio,

Qual versão do seu PHP? O endereço do arquivo esta correto?

Abraço.

07 de Abril de 2015 - 09:47

Sua foto do perfil

Matheus

e para arquivos maiores que 4GB como faço para obter o tamanho correto.

15 de Abril de 2014 - 08:16

Sua foto do perfil

Mauricio Programador

Olá Matheus,

o comando filesize retorna um valor inteiro e como os valores inteiros no PHP utilizam 32 bits ele sempre da resultados inesperados quando são valores maiores do que 2GB, já fiz e vi varias tentativas para poder achar uma solução viável, porém não encontrei.

Abraço.

15 de Abril de 2014 - 09:25

Sua foto do perfil

Gabi

ah e também tamanho em MB?

01 de Fevereiro de 2014 - 10:44

Sua foto do perfil

Mauricio Programador

Olá Gabi,

este comando sempre retornar em bytes para obter em MB você terá que converter.

Abraço.

02 de Fevereiro de 2014 - 11:25

Sua foto do perfil

Gabi

Como eu faço para pega o nome do arquivo usando uma variável tipo
pagina.php?nome=documento ?

02 de Fevereiro de 2014 - 11:28

Sua foto do perfil

Mauricio Programador

Basta usar o comando $_GET (Link). Ex.:

$_GET['nome'];

Abraço.

02 de Fevereiro de 2014 - 11:29

Sua foto do perfil

renatto

Ok muito boa a explicacao
mais eu queria tirar uma duvida...

criei um formulario para enviar arquivos para o meu servidor, mais so envia arquivos ate o mp3 como enviar arquivos de ate 200MB ???? SERIA POSSIVEL ?

15 de Novembro de 2013 - 12:39

Sua foto do perfil

Mauricio Programador

Olá Renatto,


sim e possível, geralmente os servidores configuram suas plataforma para não enviarem arquivos grandes.

Dependendo de onde esteja a sua hospedagem basta alterar os parâmentros indicados abaixo no arquivo php.ini da sua hospedagem que resolve o caso.

post_max_size = 200M
upload_max_filesize = 200M


Espero que ajude.

Grande Abraço.

15 de Novembro de 2013 - 17:20

NEWSLETTER

Receba dicas de programação
em seu e-mail

TWITTER

Acompanhe tudo o que rola
com Mauricio Programador

NEWSLETTER