そのため、ファイルをアップロードできる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>