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