PHP Загрузка увеличено время загрузки / обработки - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь загрузить файлы на сервер, используя PHP.

Я создал простой ввод файла и кнопку отправки и написал функцию PHP для обработки этого запроса. Первоначально я пытался использовать эту библиотеку https://github.com/Gargron/fileupload, которая работала нормально, но я подумал, что могу чего-то не хватает, поэтому написал код php сам.

Он мгновенно загружает небольшие файлы. Под маленьким я подразумеваю максимум 1 МБ.

Я хочу загрузить файлы размером до 2–3 ГБ или, возможно, больше.

Итак, я попробовал файл размером 150 МБ, который передался почти мгновенно, так как у меня очень высокий пропускная способность восходящего канала, поэтому для его передачи потребовалось несколько секунд, но он так и не поступил на сервер, я понятия не имею, почему, когда я пытаюсь с небольшими файлами, они go мгновенно попадают в папку сервера.

Я попытался использовать файл размером 25 МБ, и браузер показал, что загрузка составляет 100% менее чем за 5 секунд, но затем потребовалось 4 минуты, чтобы файл попал в целевую папку на сервере.

I Я использую Ubuntu 20.04 LTS, Apache2, PHP v7.3.20.

Я проверил PHP ini и увеличил post_max_size и upload_max_filesize в соответствии с моими требованиями, поэтому я не уверен, что мне не хватает.

HTML Форма

<form action="pages/upload-video" enctype="multipart/form-data" method="post" accept-charset="utf-8">

    <input type="file" name="fileToUpload">

    <br><br>

    <input type="submit" value="upload">

    </form>

PHP функция

 public function upload_video() {
    $target_dir = VIDEO_PATH;
    $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));


    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
            echo "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.";
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }

}

Дальше пробовал оставить только

public function upload_video() {
    print_r($_FILES['fileToUpload']);
}

А на это уходит столько время выполнить функцию. Не уверен, что здесь происходит. Никогда раньше не испытывал этого.

...