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