Не разрешать> 2 Мб изображения - PullRequest
2 голосов
/ 04 августа 2009

HI! Как проверить, пытаются ли пользователи загружать файлы размером более 2 МБ? Я хотел бы отрицать это и поставить сообщение об ошибке пользователю, который пытается это сделать.

Я знаю, что это что-то вроде этого, но что я должен изменить 50000, чтобы стать 2mb?

if ($_FILES['imagefile']['size'] > 50000 )
{
die ("ERROR: Large File Size");
} 

Ответы [ 3 ]

19 голосов
/ 04 августа 2009

2 МБ - 2097152 байта.

Измените 50000 на 2097152, и все готово.

6 голосов
/ 04 августа 2009

5000 - это число байтов, поэтому в основном вам просто нужно преобразовать 2 МБ в байты. 1 МБ - 1024 килобайта, а 1024 байта - 1 килобайт. Делая математику, получаем:

2 мегабайта = 2 097 152 байта

Как правило, вы можете рассчитать это в кодовой форме

$maxFileSize = $MB_limit * 1024 * 1024;

И убедитесь, что размер файла не превышает $ maxFileSize.

0 голосов
/ 04 августа 2009

Предполагая, что у вас есть поле файла в форме, называемой «загрузить», вы можете проверить размер файла следующим образом:

if ($_FILES['upload']['size'] > $max_upload_size) { echo "File too big"; }

Где $ max_upload_size - максимальный размер, который вы хотите разрешить (очевидно, вы захотите заменить оператор echo более полезным сообщением об ошибке).

Вы также можете использовать параметр upload_max_filesize в файле php.ini, но это приведет к тому, что ваши пользователи увидят ошибку PHP, если они превысят этот предел, а не ваше сообщение об ошибке.

...