代码之家  ›  专栏  ›  技术社区  ›  Ross

更改PHP上的upload_max_filesize

  •  100
  • Ross  · 技术社区  · 16 年前

    运行此代码时:

    <?php
    ini_set('upload_max_filesize', '10M');
    echo ini_get('upload_max_filesize'), ", " , ini_get('post_max_size')
    

    2M, 8M
    

    尽管我的php.ini设置得更高:

    upload_max_filesize = 10M
    post_max_size = 10M
    

    因为错误发生在设置值以及在php.ini中设置值之后,我倾向于认为这是一个错误。有人能确认或指出我哪里出了问题吗?

    更新

    11 回复  |  直到 16 年前
        1
  •  74
  •   Pacerier    11 年前

    shorthand notation 在PHP.ini之外设置配置值。我假设在遇到错误值时,它会回落到2MB作为编译默认值。

    另一方面,我不认为 upload_max_filesize 可以使用以下方式设置 ini_set() "official" list 声明它是 PHP_INI_PERDIR .

        2
  •  72
  •   karim79    16 年前

    php_value upload_max_filesize 10M
    php_value post_max_size 10M
    
        3
  •  45
  •   quid    11 年前

    由于我刚刚在共享主机上遇到这个问题,无法将值添加到我的.htaccess文件中,我想分享我的解决方案。

    我制作了一个ini文件,里面有值。就这么简单:

    创建一个名为“.user.ini”的文件并添加您的值

    upload_max_filesize = 150M
    post_max_size = 150M
    

        4
  •  12
  •   Darren    9 年前

    upload_max_filesize = "20M"
    post_max_size = "25M"
    

        5
  •  6
  •   Byron Whitlock    16 年前

    php_value upload_max_filesize 10M
    
        6
  •  0
  •   Beachhouse    13 年前

    请注意,为完整的服务器或完整的虚拟主机设置较大的post_max_size或upload_max_filesize不是一个好主意,因为它可能会导致安全风险增加。

    风险在于,攻击者可能会发送非常大的POST请求,并使服务器内存和CPU过载,因为它必须在将这些请求处理到PHP脚本之前解析和处理这些请求。

    因此,最好将此设置限制为更改某些文件或目录。例如,如果我想/admin/files/和/admin/images/,我可以使用:

    <If "%{REQUEST_URI} =~ m!^/admin/(files|images)/! && -n %{HTTP_COOKIE}">
        php_value post_max_size 256M
        php_value upload_max_filesize 256M
    </If>
    

    我还要求请求有一个cookie,以避免基本攻击。这并不能保护您免受来自未经身份验证的用户的攻击,但可能会延迟任何攻击。

    此设置可以在Apache服务器配置文件和.htaccess文件中使用。

        7
  •  0
  •   Hassan Nemir    10 年前

    如果您在本地服务器(如wamp或xampp)中运行,请确保它使用的是您认为的php.ini。这些服务器通常默认使用不在html文档文件夹中的php.ini文件。

        8
  •  0
  •   hammad khan    5 年前

    我也遇到过同样的问题,但我发现并非所有的配置设置都可以使用ini_set()函数进行设置,请检查以下内容 Where a configuration setting may be set

        9
  •  -1
  •   5422m4n    13 年前

    如果你在运行中使用ini_set,那么你会在这里找到 http://php.net/manual/en/ini.core.php 例如upload_max_filesize和post_max_size的信息是不可动态更改的(PHP_IN_PERDIR)。

    似乎只有php.ini、.htaccess或vhost配置更改才能更改这些变量。

        10
  •  -2
  •   Disapamok    6 年前

    只有在WordPress安装中出现问题时,才能应用此解决方案!

    如果你没有FTP访问权限或懒得编辑文件,

    您可以使用 Increase Maximum Upload File Size plugin

        11
  •  -11
  •   Flexo - Save the data dump sunny moon    12 年前

    您也可以在php文件中使用,如下所示

    <?php ini_set('upload_max_filesize', '200M'); ?>
    
    推荐文章