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

时间:2010-06-30 05:26:07

标签: php .htaccess

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

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:3)

你可以在.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(参见上面的变量)