move_uploaded_file () загружает только небольшие файлы

Я хочу осуществить небольшую загрузку файлов на веб-портале. Я нашел это решение на PHP.net:

<form action='action.php' method='post' enctype="multipart/form-data">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file:
<input name="userfile" type="file"/>
<!-- hidden input fields to sent variables to action.ph -->
<innput type="hidden" name='casenumber' id="caseForFileUpload" />
<input type="hidden" name='key' id="keyForFileUpload" />
<input type="submit" value="Send File" name="uploadfiles"/>
</form>

и это соответствующая часть action.php

if(isset($_POST['uploadfiles'])){
if(!empty($_FILES)){
$target_dir = "upload/";
$target_file = $target_dir.basename($_FILES['userfile']['name']);
$fileType = pathinfo($target_file,PATHINFO_EXTENSION);

if($fileType == "pdf"){
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $target_file)){
echo "<br><br>File uploaded";
}else{
echo "<br><br>File could not be uploaded";
}
}
}
}

Это хорошо работает для небольших файлов <150 КБ, но не для файлов большего размера, и я не знаю, почему это происходит.

Соответствующая информация от php.ini:

upload_max_filesize = 20M
post_max_size = 20M
max_execution_time = 30
max_input_time = 60

Так что это действительно должно работать для файлов, размер которых превышает 150 КБ. Там нет сообщений в журнале PHP и нет .htaccess используется, который может переопределить эти настройки.

Где еще я могу посмотреть, чтобы отследить это поведение, или как еще я могу осуществить загрузку файлов, чтобы разрешить размеры файлов до 2 МБ?

PS: Пожалуйста, обратите внимание, что сервер все еще работает с PHP 5.2.17 и что я не могу обновить его до более новой версии.

1

Решение

По запросу ОП:

name="MAX_FILE_SIZE" value="30000"

Это 30 000 байтов. Согласно инструкции http://php.net/manual/en/features.file-upload.post-method.php

«Скрытое поле MAX_FILE_SIZE (измеряется в байтах)».

Либо удалите этот вход, либо увеличьте его.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector