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

最佳答案

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

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

关于php - 在linux服务器中更改文件上传大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3146673/

10-12 00:13
查看更多