在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_filesize
、post_max_size
和max_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 下更改文件所有者组