파일 업로드가 중단됨, 파일 >= 100MB

파일 업로드가 중단됨, 파일 >= 100MB

그래서 파일을 업로드할 수 있는 웹사이트가 있는데, 업로드를 시작하면 진행률 표시줄이 나타납니다.

100MB보다 작은 파일 또는 파일 그룹을 한 번에 선택하면 업로드가 성공적으로 완료됩니다.

100MB를 초과하면 업로드 속도가 0%로 정지됩니다.

나는 설정했다

post_max_size = 200G

최대 업로드 파일 크기 = 200G

메모리 제한=4096M

실행 중PHP --버전다음과 같은 출력을 제공합니다

PHP 8.1.2 (cli) (빌드: 2022년 7월 21일 12:10:37) (NTS) 저작권 (c) PHP 그룹 Zend 엔진 v4.1.2, 저작권 (c) Zend OPcache v8 .1.2를 갖춘 Zend Technologies, 저작권 ( c) 젠드 테크놀로지스

업로드하는 데 사용하는 코드는 XAMPP를 사용하는 내 PC의 모든 파일에서 작동합니다.

내 서버에는 RaspberryPI 4를 사용합니다.

이 문제를 해결하는 데 도움을 주시면 대단히 감사하겠습니다.

그리고 PHP 코드는 다음과 같습니다.

<?php
if(!isset($_SESSION))session_start();
function returnMSG($status, $message){
    $result = array();
    $result['status'] = $status;
    $result['error'] = $message;
    return $result;
}
if(isset($_SESSION['id'])){
    include "data.php";
    $limit = $fileLimit[$_SESSION['role']];
    $currData = 0;
    include "connect.php";
    $conn = connect("upload"); // custom function
    if(!isset($_POST['pF']))$_POST['pF'] = '';
    $parentFolder = $_POST['pF'];
    $result = array();
    for($i = 0;isset($_FILES['files']['name'][$i]); $i++){
        $file_name = $_FILES['files']['name'][$i];
        $file_type = $_FILES['files']['type'][$i];
        $file_tmp_name = $_FILES['files']['tmp_name'][$i];
        $file_error = $_FILES['files']['error'][$i];
        $file_size = $_FILES['files']['size'][$i];
        if($file_size){
            $file_ex = pathinfo($file_name, PATHINFO_EXTENSION);
                
            $file_uploaded_by = $_SESSION['id'];
            $file_ex_lc = strtolower($file_ex);
            $dissalowed_exs = array("php", "hmtl", "js", "css", "asp", "aspx", "swf", "htm", "xhtml", "jhtml");
            if(!in_array($file_ex_lc, $dissalowed_exs)){
                $file_new_name = $file_name.uniqid("-", true);
                $file_path = $file_new_name.".".$file_ex;
                $query = "INSERT INTO `files`(`id`, `name`, `src`, `uploadDate`, `size`, `type`, `downloads`, `uploadedBy`, `deletedOn`, `status`, `parentFolder`,`JSON`) VALUES (NULL,'".$file_name."','".$file_path."','".date("Y-m-d H:i:s")."','".$file_size."','".$file_type."',0,".$file_uploaded_by.", '".date("Y-m-d H:i:s")."', 0, '$parentFolder', '{\"allowed\":[]}');";
                if($conn->query($query)){

                }else{
                    $result[$i] = returnMSG('failed', $conn->error);
                }
                if(move_uploaded_file($file_tmp_name,"../uploads/files/".$file_path)){

                }else{
                    $result[$i] = returnMSG('failed', 'Unable to move file!');
                }
            }else{
                $result[$i] = returnMSG('failed', 'File type not allowed, put the file in an archive and try again!');
            }
        }
    }
}else{
    $result = returnMSG('redirect', 'You are not logged in or the session has expired!');
}
echo json_encode($result);

내 다른 프로필에 액세스할 수 없기 때문에 이 게시물을 다시 게시합니다.

답변1

apache2.conf 파일에 추가

<Directory **absolute upload folder path**>
        LimitRequestBody 0
</Directory>

관련 정보