ファイルのアップロードが中断されました、ファイル> = 100 MB

ファイルのアップロードが中断されました、ファイル> = 100 MB

そのため、ファイルをアップロードできるWebサイトがありますが、アップロードを開始すると進行状況バーが表示されます。

100 MB 未満のファイルまたはファイル グループを一度に選択すると、アップロードは正常に完了します。

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)Zend Technologies

アップロードに使用するコードは、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>

関連情報