上传某些文件时 $_FILES 和 $_POST 数据为空
$_FILES and $_POST data empty when uploading certain files
我注意到,根据我上传的视频,有时整个 $_POST
和 $_FILES
数组会为空。这是一个奇怪的现象,但我在一些视频中发现了它。为了测试,我使用的视频都是 video/mp4
文件类型。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
var_dump($_POST);
var_dump($_FILES);
?>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="attachment">
<input type="text" name="other">
<button type="submit" class="save" value="Save Changes">Upload that file!</button>
</form>
</body>
</html>
好的视频输出是
Array
(
[other] => testing string
)
Array
(
[attachment] => Array
(
[name] => Shasta.mp4
[type] => video/mp4
[tmp_name] => /private/var/tmp/phpAoDLKi
[error] => 0
[size] => 4688949
)
)
当一个错误的请求显示如下
Array
(
)
Array
(
)
我已经修改了我的 php.ini 以允许文件上传到 50mb 的大小,我正在测试的文件是 4.7mb 和 10.2mb。我完全不知道原因是什么,视频文件名是 Shasta.mp4
(好文件)和 Bulova_Watches.mp4
(坏文件)。
如果需要我可以将文件上传到站点供其他人测试。
您遇到的问题是由于 post_max_size
在您的 php.ini
中默认设置为 8M
。
由于您的文件是 10.4MB
,您 运行 出现以下错误:
POST Content-Length of 10237675 bytes exceeds the limit of 8388608
bytes in Unknown
因为您已达到该限制。
解决此问题的技巧是通过更改值来简单地提高该限制。您可以直接在 php.ini 文件中将其更改为您想要的任何值,即 20M。
或者您可以通过 .htaccess
文件设置它:
php_value post_max_size 20M
php_value upload_max_filesize 20M
注意:我还添加了更大文件所需的 upload_max_filesize
:)
我注意到,根据我上传的视频,有时整个 $_POST
和 $_FILES
数组会为空。这是一个奇怪的现象,但我在一些视频中发现了它。为了测试,我使用的视频都是 video/mp4
文件类型。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
var_dump($_POST);
var_dump($_FILES);
?>
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="attachment">
<input type="text" name="other">
<button type="submit" class="save" value="Save Changes">Upload that file!</button>
</form>
</body>
</html>
好的视频输出是
Array
(
[other] => testing string
)
Array
(
[attachment] => Array
(
[name] => Shasta.mp4
[type] => video/mp4
[tmp_name] => /private/var/tmp/phpAoDLKi
[error] => 0
[size] => 4688949
)
)
当一个错误的请求显示如下
Array
(
)
Array
(
)
我已经修改了我的 php.ini 以允许文件上传到 50mb 的大小,我正在测试的文件是 4.7mb 和 10.2mb。我完全不知道原因是什么,视频文件名是 Shasta.mp4
(好文件)和 Bulova_Watches.mp4
(坏文件)。
如果需要我可以将文件上传到站点供其他人测试。
您遇到的问题是由于 post_max_size
在您的 php.ini
中默认设置为 8M
。
由于您的文件是 10.4MB
,您 运行 出现以下错误:
POST Content-Length of 10237675 bytes exceeds the limit of 8388608 bytes in Unknown
因为您已达到该限制。 解决此问题的技巧是通过更改值来简单地提高该限制。您可以直接在 php.ini 文件中将其更改为您想要的任何值,即 20M。
或者您可以通过 .htaccess
文件设置它:
php_value post_max_size 20M
php_value upload_max_filesize 20M
注意:我还添加了更大文件所需的 upload_max_filesize
:)