У меня есть скрипт загрузки файла (изображения) на PHP, который я использую для загрузки и изменения размера изображений ... Он использует простую проверку типа и размера MIME, поэтому разрешены только изображения jpg и максимальный размер файла 1 МБ.
Я недавно обнаружил проблему. Когда я пытаюсь загрузить файл .avi с помощью сценария, сценарий обрабатывает файл как его правильный MIME-тип и размер, а затем просто ничего не делает, просто возвращает меня к форме загрузки без каких-либо сообщений об ошибках. (Вместо отображения сообщения «файл слишком большой»).
Я имею в виду, если я пытаюсь загрузить .gif или .txt или что-то еще, я получаю ошибку, как и ожидалось.
Если я пытаюсь загрузить файл размером более 1 МБ, я получаю сообщение об ошибке, как и ожидалось.
Только когда я пытаюсь загрузить файл .avi размером более 1 МБ, я не получаю никакой ошибки .....
Ну, вот первая часть кода:
// define a constant for the maximum upload size
define ('MAX_FILE_SIZE', 1024000);
if (array_key_exists('upload', $_POST)) {
// define constant for upload folder
define('UPLOAD_DIR', 'C:/Wamp/www/Version-1.4/posters_uploaded/');
// replace any spaces in original filename with underscores. At the same time, assign to a simpler variable
$file = str_replace(' ', '_', $_FILES['image']['name']);
// convert the maximum size to KB
$max = number_format(MAX_FILE_SIZE/1024, 1).'kb';
// create an array of permitted MIME types
$permitted = array('image/jpeg','image/pjpeg');
// begin by assuming the file is unacceptable
$sizeOK = false;
$typeOK = false;
// check that file is within the permitted size
if ($_FILES['image']['size'] > 0 && $_FILES['image']['size'] <= MAX_FILE_SIZE) {
$sizeOK = true;
}
// check that file is of a permitted MIME type
foreach ($permitted as $type) {
if ($type == $_FILES['image']['type']) {
$typeOK = true;
break;
}
}
if ($sizeOK && $typeOK) {
switch($_FILES['image']['error']) {
case 0: // ...................
Я просто изменяю код сборки PHP, поэтому я не эксперт ...
Какие-либо предложения??
Спасибо.