上传某些文件时$ _FILES和$ _POST数据为空

Ban*_*lla 5 html php multipartform-data

我注意到的是,根据视频,我上传,有时整个$_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>
Run Code Online (Sandbox Code Playgroud)

好视频的输出是

Array
(
    [other] => testing string
)
Array
(
    [attachment] => Array
        (
            [name] => Shasta.mp4
            [type] => video/mp4
            [tmp_name] => /private/var/tmp/phpAoDLKi
            [error] => 0
            [size] => 4688949
        )

)
Run Code Online (Sandbox Code Playgroud)

坏请求显示以下内容

Array
(
)
Array
(
)
Run Code Online (Sandbox Code Playgroud)

我修改了我的php.ini以允许文件上传到50mb的大小,我正在测试的文件是4.7mb和10.2mb.我完全不知道原因是什么,视频文件名是Shasta.mp4(好文件)和Bulova_Watches.mp4(坏文件).

如果需要,我可以将文件上传到网站供其他人测试.

Dar*_*ren 6

您面临的问题是由于您的问题post_max_size设置8M为默认值php.ini.正如您的文件,10.4MB您遇到以下错误:

POST Content-Length 10237675字节超过Unknown中的8388608字节限制

因为你达到了这个限制.解决这个问题的方法是通过更改值来简单地提高该限制.您可以直接在php.ini文件中将其更改为您想要的任何内容,即20M.

或者你可以通过你的.htaccess文件设置它:

php_value post_max_size 20M
php_value upload_max_filesize 20M
Run Code Online (Sandbox Code Playgroud)

注意:我还添加了upload_max_filesize您需要更大文件的要求:)