【问题标题】:Server not accepting big files服务器不接受大文件
【发布时间】:2013-06-26 20:49:51
【问题描述】:

我尝试使用 PHP 将大 (>~1.5MB) 图像上传到我的网站(免费托管),但文件没有出现在服务器上。 有时我得到错误 1(超出最大尺寸),有时它告诉我 move_uploaded_file() 成功但图像仍然没有出现。 当我尝试将PHP.ini 设置为超过 2M 的上传大小时,它又回到了 2M。 有什么我可以做的吗? Tnx。

【问题讨论】:

  • 您是否检查过您的主机是否允许您托管大文件?
  • 自免费托管以来,文件上传有大小限制。许多免费主机只提供 2 mb。
  • 更改主机。其中一些免费主机会故意锁定您能够执行的操作,以使该服务无法被利用。

标签: php file upload size


【解决方案1】:

我在托管服务提供商处遇到过这个问题,您需要一个本地 php.ini 文件才能覆盖从主 php.ini 提供的内容。使用 ini_set() 不会在这样的情况下工作。如果您有本地的php.ini,但它仍然无法正常工作,最好联系您的提供商并询问他们如何进一步管理。

【讨论】:

    【解决方案2】:

    您可以尝试将它们设置在 .htaccess 或使用(只能使用 post_max_size)ini_set()

    如果它不起作用,则表示您的提供商禁用了它。

    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    

    要添加到 .htaccess 的行

    注意:upload_max_filesize是PHP_INI_PERDIR的类型,也就是说可以在php.ini.htaccess、httpd.conf.user.ini(自 PHP 5.3 起)

    【讨论】:

    • 这不适用于托管服务提供商,他们明确禁止此类行为
    • @php_nub_qq 这就是为什么我写道,如果它不起作用,则意味着提供商禁止它。
    【解决方案3】:

    您需要从php.ini 更改几个配置指令,如下所示

    post_max_size = 64M
    upload_max_filesize = 64M
    

    鉴于您使用免费托管,您可能无权更改 php.ini 文件,如果是这种情况,那么您可以使用.htaccess 文件来覆盖这些值。

    upload_max_filesize 具有 PHP_INI_PERDIR 可更改状态,这意味着无法通过 ini_set 进行更改,可以在以下位置进行更改。入口可以在php.ini、.htaccess、httpd.conf或.user.ini中设置

    【讨论】:

    • 该值没有保留,这表明主机有一个配置系统可以恢复对 php.ini 的更改。
    • 无法使用php.ini检查手册更改upload_max_filesize
    • @Robert 检查我的更新答案,当你对我投反对票时,我正在更新我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 2014-02-17
    • 2012-10-05
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多