我通过PHP写了一个文件上传脚本,现在我有一个问题,我无法上传8-10 MB左右的大文件,所以你们有什么建议吗?
<?php
ini_set('post_max_size', '8128M');
ini_set('upload_max_filesize', '8128M');
header("Content-Type: text/plain");
$key = "M8hqvvaCbMGXP4GycfDNc6CUckYdETdPEkcdKu9QaUEM52jCZnrnrKkh8B9hVZGN";
$uploadhost = "https://i.sandrotracker.biz/";
$foldername = "../";
if ($_SERVER["REQUEST_URI"] == "/robot.txt") { die("User-agent: *\nDisallow: /"); }
if (isset($_POST['k'])) {
if ($_POST['k'] == $key) {
$target = getcwd() . "/" . $foldername . "/" . basename(basename($_FILES['d']['name']));
if (move_uploaded_file($_FILES['d']['tmp_name'], $target)) {
$md5 = md5(microtime(true) . md5_file(getcwd() . "/" . $foldername . "/" . basename($_FILES['d']['name'])));
rename(getcwd() . "/" . $foldername . "/" . basename($_FILES['d']
['name']), getcwd() . "/" . $foldername . "/" . $md5 . "." .
end(explode(".",
$_FILES["d"]["name"])));
echo $uploadhost . $md5 . "." . end(explode(".", $_FILES["d"]
["name"]));
exit;
} else {
print_r($_FILES);
exit;
}
}
}
echo "invalid_request";
?>
答案 0 :(得分:0)
问题是8128M(8,522,825,728字节)超过了32位整数限制(2,147,483,647)。有关基本说明,请参阅https://en.wikipedia.org/wiki/2,147,483,647。
您可以通过以下两种方式解决此问题:
ini_set('post_max_size', '8128M');
ini_set('upload_max_filesize', '8128M');
为:
ini_set('post_max_size', '2147483647');
ini_set('upload_max_filesize', '2147483647');