上传大文件不起作用

Posted

技术标签:

【中文标题】上传大文件不起作用【英文标题】:Uploading big files doesn't work 【发布时间】:2011-10-10 12:39:03 【问题描述】:

我目前正在使用 php 将图像上传到我的服务器。但是 - 显然 - 文件大小有限制,我无法修改 .htaccess 文件,也无法访问 php.ini 文件..

例如,当我添加以下内容时会发生什么:

php_value post_max_size 10100000 , 和:

php_value upload_max_filesize 10000000

到 .htaccess 文件,我得到错误 500.. 这个错误将一直存在,直到我放回原始 .htaccess 文件..

在我的主文件夹中创建一个新的 php.ini 或在 php 帮助中使用 ini_set() 都没有,所以我的问题是:有没有一种方法可以上传更大的文件而无需更改 php.ini 或 .htaccess ?

提前致谢, 杰伦

【问题讨论】:

当然,只是不要使用 PHP。如果您无法修改 PHP 设置,那么您将不得不使用 PHP 以外的其他东西,或者将文件分成多个较小的块上传,然后在服务器上重新组装。 检查 Apache 的错误日志——它应该包含 500 错误的准确描述。 好的..我发现upload_max_filesize按标准是“12M”..所以这不应该是问题..我现在看到它可能是内存限制..我上传并调整大小图片。我想这会占用所有内存,因为我执行调整大小功能的页面没有完全加载.. 【参考方案1】:

这超出了 32 位 Linuy 的限制。

尝试使用

php_value upload_max_filesize 1500M
php_value post_max_size 1500M

【讨论】:

【参考方案2】:

如果您无法更改这些指令,那么您无能为力。

也许您可以为您的上传组件使用 PHP 以外的其他语言? 例如,也许是用 Perl 编写的 CGI —— 仍然有支持这些的托管服务;并且它们可能没有相同的限制。

【讨论】:

【参考方案3】:

好的,我想我知道该怎么做了。我不能在我的主机上使用 CGI 或 PERL,所以我必须坚持使用 PHP,因此我只剩下这个 memory_limit。我不知道我的服务器上是否启用了 ini_set(),所以我需要找到一个不让每个请求专用的内存超载的方法..

我打算做的是给每个上传(和调整大小)请求一个新的、新鲜的页面。所以每个上传都会有它自己的 iframe!!

到目前为止,这在 Chrome 中有效,稍后将在其他浏览器上进行测试,因为我不知道每个浏览器中的 iframe 是否都接受发布请求..

【讨论】:

我被困在这里.. 上传在 FF 和 IE 中还不能工作。我检查了 $_FILES-array 中传递的文件名,似乎文件没有上传到带有 IE 和 FF 的 iframe 中..

以上是关于上传大文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥没有 enctype 属性文件上传不起作用?

Codeigniter 文件上传不起作用

文件上传不起作用android

并行文件上传 XMLHttpRequest 请求以及为啥它们不起作用

django文件上传不起作用

文件上传控制不起作用