8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用 php 上传 1GB 文件

Abraham Zsombor Nagy 2月前

115 0

我正在尝试使用 php 脚本上传一个 1GB 大小的文件,如果文件大小小于 20MB,它可以完美运行,但是当我增加文件大小后,按下网站上的上传按钮,它......

我正在尝试使用 php 脚本上传一个 1GB 大小的文件,如果文件大小小于 20MB,它可以完美运行,但是当我增加文件大小后,按下网站上的上传按钮,它会上传文件(我猜是因为它需要几分钟),之后,我的 Firefox 要求我下载 upload.php,而不是执行 upload.php,所以我猜,文件正在上传,但我的 php 脚本无法执行。

另外,在 Google 中搜索后,我发现了我对 php.ini 所做的以下设置,并且我的 php_info() 函数显示设置已被更改。

/*php.ini * php.ini start * /

内存限制 = 512M

post_max_size = 15000M

file_uploads = 开启

upload_max_filesize = 15000M

最大输入时间 = 20000

最大执行时间 = 20000

session.gc_maxlifetime = 20000

/*php.ini * php.ini end * /

帖子版权声明 1、本帖标题:使用 php 上传 1GB 文件
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Abraham Zsombor Nagy在本站《apache》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 实际上我正在创建一个可以上传文件的网站,然后用户可以与其他用户共享文件链接......

  • 附注:如果您要上传 1GB 的文件,则应使用 Flash 上传器(Gmail/Youtube/等用于高级上传的程序),因为它可以轻松进行拖放,但最重要的是,它具有视觉吸引力的进度条。

  • @Kranu,你的想法非常好,它肯定会提高可用性。一旦我找到问题的解决方案,我就会这样做......

  • 文件上传大小的限制不仅仅受到 PHP 的限制。PHP 有其限制,Apache 有其限制,许多 Web 服务都有其自身的限制,然后还有 /tmp 目录大小的限制,该限制可以通过共享主机上的用户权限来设置。更不用说硬盘空间不足了!

    您的 php.ini 看起来不错,但正如已经建议的那样 - 检查 Apache 中的 LimitRequestBody 并确保您的 Web 服务允许这样做。

    当您需要上传非常大的文件时,一种常见的解决方案是在客户端使用 Flash 或 Java,因为它们可以访问客户端的实际文件系统。然后,Flash/Java 可以将文件分解成小块,一次发送一个,然后在服务器端重新组装。这有多个好处。首先,您可以恢复中断的下载。其次,您不必担心任何脚本超时。第三,它可以绕过可能来自 PHP、Apache、Web 服务或其他来源的任何可能的文件系统限制。

  • 史蒂文,现在我可以在我的网站文件夹中添加 .htaccess 文件来上传 100MB 的文件,如下所示:RewriteEngine 在 RewriteCond %{SERVER_PORT} 80 RewriteCond %{REQUEST_URI} myuploadfolder RewriteRule ^(.*)$ mywebsite.com/index.html [R,L]php_value 最大输入时间 0我认为您的建议可以帮助我上传大约 1GB 的文件,但是当我尝试在此 .htaccess 文件中添加 LimitRequestBody 时,出现内部服务器错误 500,所以您能告诉我应该在哪里进行更改以及如何更改 LimitRequestBody 吗?

  • httpd.apache.org/docs/current/mod/core.html#limitrequestbody 确保以字节为单位指定 LimitRequestBody 1073741824,并确保您的 Web 服务器允许此命令。一些 Web 服务器有外部检查,以确保不会在单个请求中发送过多数据。这可以节省带宽,最终节省资金。如果允许,您应该能够将其放在 .htaccess 文件的最后。我建议将其放在与上传脚本相同的文件夹中,以防止对您的 Web 根目录进行 DoS 攻击。

  • post_max_size = 15000M 应该高于 upload_max_filesize = 15000M 。可以是 post_max_size = 15001M 。我又增加到 1 了。

  • 检查您的 Web 服务器是否也允许如此大的上传。在 Apache 上,设置是 LimitRequestBody 。此限制早在 PHP 出现之前就已应用,并且无法在 PHP 内部更改/覆盖。

返回
作者最近主题: