在linux服务器中更改文件上传大小

Posted

技术标签:

【中文标题】在linux服务器中更改文件上传大小【英文标题】:Change file upload size in linux server 【发布时间】:2011-03-09 23:14:00 【问题描述】:

我必须上传一个 34MB 的 pdf 文件。我的网站在 Linux 中使用 php。但我的网站只支持 8MB。 (我从 phpinfo 知道这一点)。我如何增加尺寸?听说可以在php.ini中改一下。访问。但是我从哪里得到 php.ini?我如何更改大小?有没有人给我一个解决方案?

【问题讨论】:

【参考方案1】:

您可以在 .htaccess 中执行此操作:

php_value memory_limit 64M
php_value upload_max_filesize 32M
php_value post_max_size 32M
php_value max_execution_time 600
php_value max_input_time 600

或 php.ini(见上面的变量)

【讨论】:

文档有点分散,但upload_max_filesizepost_max_sizemax_input_time 不能用ini_set() 设置。请参阅Where a configuration setting may be set、File Uploads、Data Handling 和Runtime Configuration 了解更多信息。 抱歉我的提示不正确,我将编辑我的答案。顺便说一句,无论如何我都会使用 .htaccess。【参考方案2】:

有多种设置会影响最大文件上传大小:

PHP_INI_PERDIR:以下设置可以在php.ini、.htaccess或httpd.conf中设置:

upload_max_filesize 上传文件的最大大小。

post_max_size 设置允许的发布数据的最大大小。要上传大文件,该值必须大于upload_max_filesize。如果您的配置脚本启用了内存限制,memory_limit 也会影响文件上传。

max_input_time 这设置了允许脚本解析输入数据(如 POST、GET 和文件上传)的最长时间(以秒为单位)。

PHP_INI_ALL: 可以在 php.ini、.htaccess、httpd.conf 或 ini_set() 中设置以下设置:

max_execution_time 这设置了脚本在被解析器终止之前允许运行的最长时间(以秒为单位)。如果此限制过低,您的脚本将在大文件有时间上传之前终止。

memory_limit 这设置了允许脚本分配的最大内存量(以字节为单位)。如果您的配置脚本启用了内存限制,那么 memory_limit 也会影响文件上传。一般来说memory_limit应该大于post_max_size

POST上传方式 通过 POST 方法上传文件时,您还需要在 html 表单中设置MAX_FILE_SIZE。有关详细信息,请参阅此内容:

http://www.php.net/manual/en/features.file-upload.post-method.php

共享主机 如果您使用的是共享主机,您不太可能能够访问系统 php.ini 文件。但是,您可以在 .htaccess 或每个目录的 php.ini 文件中设置值。一些共享主机提供商可能会阻止您这样做,因此您需要检查是否是这种情况。

.htaccess 这是一个示例 .htaccess 文件:

<IfModule mod_php5.c>
  php_value upload_max_filesize 70M
  php_value post_max_size 80M
  php_value memory_limit 90M
  php_value max_execution_time 240
  php_value max_input_time 240
</IfModule>

每个目录的 php.ini 上述设置也可以在每个目录的 php.ini 文件中更改。同样,执行此操作的能力可能会受到您的托管服务提供商的限制。有关这方面的更多信息,请参见此处:

http://www.askapache.com/php/custom-phpini-tips-and-tricks.html

多变: 有关 PHP_INI_* 模式的说明,其中显示了可以设置配置指令的位置,请参见此处:http://php.net/manual/en/configuration.changes.modes.php

【讨论】:

memory_limit 不影响文件上传的最大大小。 @Gumbo:它会影响post_max_size。请在此处查看这些文档:php.net/manual/en/ini.core.php#ini.post-max-size 我已更新答案以使其更清晰。 在网络服务器级别也可能设置了限制。

以上是关于在linux服务器中更改文件上传大小的主要内容,如果未能解决你的问题,请参考以下文章

使用 java.nio.Files 在 Linux 下更改文件所有者组

多个linux服务器批量更改nginx配置文件并且立即生效的办法

Linux 下FTP空间大小能设置吗?

如何在Linux中使用rz/sz工具进行文件传输

在linux下配置FTP服务

如何把文件上传到linux服务器