Я хочу иметь HTTP POST для скрипта PHP, который включает в себя загрузку файла. PHP-скрипт должен отклонять любой файл, который не является правильным типом или иным образом искажен.
Это означает
Как я могу это сделать?
PHP не может прекратить загрузку. Но вы можете проверить $_FILES
после того, как файл был полностью загружен.
Эта функция позволяет пользователям загружать как текстовые, так и двоичные файлы. С помощью функций проверки подлинности PHP и работы с файлами вы имеете полный контроль над тем, кому разрешено загружать и что делать с файлом после его загрузки .
Видеть:
http://php.net/manual/en/features.file-upload.post-method.php
Вы можете ограничить размер файла в php.ini
upload_max_filesize integer
Максимальный размер загруженного файла. Когда используется целое число, значение измеряется в байтах. Также могут использоваться сокращенные обозначения, как описано в этом FAQ.
http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
Это максимум, который вы можете получить.
<?php $allowedExts = array("jpg", "jpeg", "gif", "png"); $extension = end(explode(".", $_FILES["file"]["name"])); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Stored in: " . $_FILES["file"]["tmp_name"]; } } else { echo "Invalid file"; } ?>