PHP - 无法上传大于 25MB 的文件

PHP - can't upload files larger than 25MB

我正在自己的 IIS 服务器上摆弄 BlueImp's jQuery File Upload 脚本。这个想法是做一个海量文件上传系统,这样人们就可以上传和存储最大的文件(我想要的是每个文件最大 500MB)。

脚本当前配置如下:

$options = array(
    'image_versions' => array(),
    'acceptFileTypes' => '/(\.|\/)(gif|jpe?g|png|avi|mp4|mpg|mkv|mov|wmv|flv)$/i',
    'maxFileSize' => 500 * 1014 * 1024
);  

这应该允许每个多媒体文件的最大扩展名。每个文件 500MB。但是,经过测试,一旦文件大小超过 10MB,它似乎就会失败。大于该文件的文件不会被存储。

经过一番搜索,我将 php.ini 设置更新为一些离谱的高值:

post_max_size = 500M
upload_max_filesize = 500M
max_file_uploads = 100
max_execution_time = 5000
max_input_time = 5000
memory_limit = 1024M

这部分修复了问题。我现在可以上传更大的文件。但是,当文件大于 25MB 时,它仍然会卡住。不要认为这是执行时间,因为在我的本地网络上上传 100MB 或更多只需要几秒钟。 运行 phpinfo() 确认 php.ini 中的所有值都被正确解释(并且没有被主值覆盖)。

有谁知道可能导致大文件上传失败的原因吗?

请注意,不仅 PHP 对文件上传设置了限制,IIS 也设置了限制。 根据 this website,您可以提高网站上传大小限制,将以下内容添加到与您的网站相关的 web.config 文件中:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="524288000"/>
        </requestFiltering>
    </security>
</system.webServer>

这据说适用于 IIS7