【问题标题】:PHP - Maximum Total Upload Size?PHP - 最大总上传大小?
【发布时间】:2010-10-18 04:24:21
【问题描述】:

我有一个包含 15 个字段的 php 网页。用户将使用它来上传图像。我通过上传 15 张 jpg 图片进行了测试,每张大约 2 M,没有任何问题。在我发布的那天,我将把这个网页移动到另一个 Linux 共享主机环境(仍然不确定是哪个)。是否有一些网络托管环境会限制一个 http 请求中的总上传大小?

【问题讨论】:

    标签: php upload limit


    【解决方案1】:

    这很不寻常,但当然,请咨询您选择的任何托管公司。如果有限制,肯定会高于 30 MB。

    【讨论】:

    • 我的 linux 机器上的默认限制是 2 MB。
    • 嗯,是的,但是当您购买主机时,他们会增加这一点,如果他们不这样做,您可以要求他们这样做。
    • 蹩脚的主机没有。
    【解决方案2】:

    php.ini 指令“post_max_size”应该限制您可以在单个 POST 中发送多少数据。如果您在一篇文章中发布 15 张图片,我很确定这仍然被视为一篇文章。所以在上线之前检查这个值可能会很好。

    【讨论】:

      【解决方案3】:

      这是 php.ini 中的设置。您可以在 php 信息的输出中查看标记为“upload_max_filesize”的字段。要获取 php 信息页面,请使用以下代码创建一个 php 文件:

      <?php phpinfo(); ?>
      

      This post at php.net 为您提供了获取该信息的示例代码,页面的其余部分是 php 配置选项的宝库。

      【讨论】:

        【解决方案4】:

        是的。有(据我所知)三个左右会影响上传大小限制的配置设置:

        upload_max_filesize 是对每个单独文件的限制;但是post_max_size是整个请求的上限,包括所有上传的文件。

        不同的托管环境会以不同的方式设置这些值,这可能会影响您在部署时的能力。

        【讨论】:

        • 在完成所有这些更改后重新启动 Apache 会有所帮助,但没有任何反应
        • 还有其他的,看下面我的回答
        【解决方案5】:

        有一堆限制上传过程的PHP设置:

        • file_uploads
        • upload_max_filesize
        • max_input_time
        • memory_limit
        • max_execution_time
        • post_max_size

        我建议阅读此页面:http://www.radinks.com/upload/config.php

        虽然其中许多确实不限制上传大小,但它们确实限制了上传过程 - 例如。如果内存限制太低,那么您将无法上传需要在内存中停留一段时间的大文件。

        【讨论】:

        • file_uploadsmemory_limitmax_execution_time 不限制最大上传总大小。
        【解决方案6】:

        上传限制是通过 php ini 设置的。您可以尝试像这样获取它们:

        $post_max_size = ini_get('post_max_size');
        $upload_max_filesize = ini_get('upload_max_filesize');
        

        【讨论】:

          【解决方案7】:

          到目前为止,我已经看到了最好的解决方案here,代码如下:

          /**
           * Returns the maximally uploadable file size in megabytes
           *
           * @return  string
           */
          function getMaxUploadSize()
          {
             $max_upload    = (int)(ini_get('upload_max_filesize'));
             $max_post      = (int)(ini_get('post_max_size'));
             $memory_limit  = (int)(ini_get('memory_limit'));
             return min($max_upload, $max_post, $memory_limit);      
          }
          

          【讨论】:

            【解决方案8】:

            如果您使用的是 nginx,请确保您具有以下内容:

            server {
            ...
                 client_max_body_size 100M;
            ....
            }
            

            【讨论】:

              【解决方案9】:

              这里:

              max_execution_time
              max_input_time
              memory_limit
              post_max_size
              upload_max_filesize
              max_file_uploads 
              

              【讨论】:

                猜你喜欢
                • 2011-03-16
                • 2014-05-28
                • 2017-08-01
                • 2011-12-19
                • 2012-10-16
                • 2014-08-14
                • 2012-09-02
                • 1970-01-01
                • 2014-04-04
                相关资源
                最近更新 更多