所以我有一个网站,您可以在其中上传文件,当您开始上传时,会弹出一个进度条。
如果一次选择的一个文件或一组文件小于 100MB,上传将顺利完成。
如果它们超过 100MB,上传速度将冻结在 0%。
我已经设定
post_max_size = 200G
上传最大文件大小 = 200G
内存限制=4096M
执行中PHP --版本给出以下输出
PHP 8.1.2 (cli)(构建时间:2022 年 7 月 21 日 12:10:37)(NTS) 版权所有 (c) PHP Group Zend Engine v4.1.2,版权所有 (c) Zend Technologies 与 Zend OPcache v8.1.2,版权所有 ( c),Zend Technologies
我用于上传的代码适用于我的 PC 上使用 XAMPP 的任何文件。
对于我的服务器,我使用 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>