Как я могу загрузить файл в PHP больше, чем около 2 МБ?

Я пытаюсь разрешить пользователям загружать максимум 2 ГБ файла JAR с вводом файла HTML и PHP. Процесс работает нормально, и он загружает файл, но только если он небольшой. Я установил php.ini к этому:

max_execution_time = 10000
max_input_time = 10000
post_max_size = 2048M
upload_max_filesize = 2048M

После того, как я сделал это, он сделал все мои php-страницы, которые есть в нем:

require_once("../include/config.php");

чтобы загрузить как простую белую страницу с НИЧЕГО на ней ИЛИ (ИНОГДА), это дает мне эту ошибку:

Fatal error: Cannot redeclare encodePassword() (previously declared in /home/duskfall/public_html/authentication/encode.php:2) in /home/duskfall/public_html/authentication/encode.php on line 80

На линии 80, где сказано, что это было:

$coded = "";

Зачем это делать, когда я помещаю только 4 вещи в php.ini. Они также единственные 4 вещи, когда я создал файл php.ini. Он даже делает это, когда я ничего не помещаю в файл php.ini. Нужно ли помещать некоторые другие вещи в файл?

Как бы я исправить эту проблему. Или есть лучший способ сделать это с php.ini и сделать его эффект только на одной странице php?

РЕДАКТИРОВАТЬ: Также я использую хост godaddy.com на сервере Linux, если это поможет.

0

Решение

  1. Перед использованием post_max_size вы должны установить memory_limit.
  2. post_max_size зависит от memory_limit, memory_limit должно быть больше, чем post_max_size, а не равно.
  3. Также post_max_size должен быть выше, чем upload_max_filesize.
    Используйте в PHP-скрипте:

    echo ini_get («memory_limit»). «\ n»;
    ini_set ( «memory_limit», «30M»);
    echo ini_get («memory_limit»). «\ n»;

    echo ini_get («post_max_size»). «\ n»;
    ini_set ( «post_max_size», «20M»);
    echo ini_get («post_max_size»). «\ n»;

    echo ini_get («upload_max_filesize»). «\ n»;
    ini_set ( «upload_max_filesize», «19M»);
    echo ini_get («upload_max_filesize»). «\ n»;

Также:
Я думаю, что у вас есть проблемы с вашей функцией encodePassword ().
Попробуйте использовать новые чистые тестовые файлы, такие как:

test.html

<form enctype="multipart/form-data" action="/path/to/your/phpscript" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

test.php

$uploaddir = '/path/to/your/dir';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Success.\n";
} else {
echo "Error!\n";
}

echo '<pre>';
echo 'Debug file:';
print_r($_FILES);
echo "</pre>";
0

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

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

По вопросам рекламы [email protected]