Jump to content
  • 0

Проверка размера файла через PHP


korjik
 Share

Question

Привет, форумчане! У меня возник такой вопрос.. я пытаюсь загрузить три файла из формы.. и если один из них больше, чем это указано upload_max_filesize - возникает ошибка Warning: POST Content-Length of 12425553 bytes exceeds the limit of 8388608 bytes in Unknown on line 0. Можно ли как то исключить эту ошибку, какой-нибудь проверкой на PHP? или JS. Кто как решал подобные задачи?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Ну при превышении максимального размера ясное дело, что будет ошибка. Я не совсем понял, что Вы хотите. Вывести свою ошибку?

if ($_FILES['file']['size'] > ini_get('upload_max_filesize')) {   ...}

Сделать так, чтобы можно было загружать любые файлы? Для этого надо установить какое-нибудь значение upload_max_filesize, например, 9999999999999999999999999999999999999

Link to comment
Share on other sites

  • 0

Дело в том, что в htaccess у меня прописано вот что:

php_value max_execution_time 120php_value max_input_time 120php_value upload_max_filesize 8Mphp_value post_max_size 8M

а все, что мне нужно - избавиться от этой надписи на странице, и вывести например свой текст. Делаю такую проверку:

 

for ($i = 0; $i < sizeof($_FILES["fileToUpload"]["name"]); $i++) {  if (is_uploaded_file($_FILES['fileToUpload']['tmp_name'][$i])) {    $filename = $_FILES['fileToUpload']['tmp_name'][$i];    $ext = substr($_FILES['fileToUpload']['name'][$i], 1 + strrpos($_FILES['fileToUpload']['name'][$i], "."));    if (filesize($filename) > $maxFileSize) {      exit ("Файл не загружен. Размер файла превышает 8 мегабайт.");         } elseif (!in_array($ext, $valid_types)) {                        echo ("Некорректный тип файла");    ...}

$maxFileSize определяется как 8 * 1024 * 1024. А файл, который загружаю - 12 мб. То, что в Exit - не выводит, А вот warning - с удовольствием..

Link to comment
Share on other sites

  • 0

Во-первых, при загрузке файлов больше указанного в upload_max_filesize размера устанавливается  ошибка  $_FILES['fileToUpload']['error'] === UPLOAD_ERR_INI_SIZE.

Во-вторых, при размере формы большей  post_max_size переменные $_POST и $_FILES вообще пустые. То есть проверка должна быть вроде

<?phpif (strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') {  if (empty($_FILES) && empty($_POST)) {    exit ("Form size more than " . ini_get('post_max_size'));  }  if ($_FILES['fileToUpload']['error'] !== UPLOAD_ERR_OK) {    if ($_FILES['fileToUpload']['error'] === UPLOAD_ERR_INI_SIZE) {      exit ("File size more than " . ini_get('upload_max_filesize'));     } else {      exit ("Some file upload error: " . $_FILES['fileToUpload']['error']);    }  }  // обработка загрузки} else {// обработка не POST-запроса}
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy