2010-06-30 118 views
4

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

回答

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方法上传文件,你还需要设置MAX_FILE_SIZE在你的HTML表单。有关详细信息,请参阅本:

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

+0

* memory \ _limit *不会影响文件上传的最大大小。 – Gumbo 2010-06-30 07:09:46

+0

@Gumbo:它影响'post_max_size'。看到这些文件在这里:http://www.php.net/manual/en/ini.core.php#ini.post-max-size我已经更新了答案,使之更清晰。 – Mike 2010-06-30 07:18:49

+0

在网络服务器级别也可能会设置限制。 – symcbean 2010-06-30 08:31:11

2

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

+0

这个文档有点分散,但'upload_max_filesize','post_max_size'和'max_input_time'不能用'ini_set()'设置。参见[可以设置配置设置的地方](http://php.net/manual/en/configuration.changes.modes.php),[文件上传](http://www.php.net/manual/en /ini.core.php#ini.sect.file-uploads),[数据处理](http://www.php.net/manual/en/ini.core.php#ini.sect.data-handling)和[运行时配置](http://www.php.net/manual/en/info.configuration.php#info.configuration)以获取更多信息。 – Mike 2010-06-30 07:41:27

+0

对不起,我编辑我的答案。顺便说一句,我会去.htaccess无论如何。 – fabrik 2010-06-30 07:48:02