Set limit to media upload?

时间:2016-05-31 作者:dingo_d

我正在网上搜索,我所能看到的就是如何增加媒体上传的文件大小,我知道如何使用php.ini, 但我需要做的是限制文件大小,仅用于媒体上传。

客户及其同事在理解上有困难:请不要上传大于1MB的图片,因为您的网站将永远加载。

他们不断上传大小超过8 MB的图像,整个网站的加载时间超过30秒。这太可怕了。

所以我在想,如果可以将图像上传限制在1 MB左右,而不影响一般upload_max_filesize 这将影响上传主题和插件的能力(我不希望发生这种情况)。

你知道这能不能做到吗?

4 个回复
最合适的回答,由SO网友:Capiedge 整理而成

是的,您可以使用wp_handle_upload_prefilter 这允许你在特定条件未达到时停止上传过程。

在您的情况下,可以尝试以下代码段:

function limit_upload_size( $file ) {

    // Set the desired file size limit
    $file_size_limit = 1024; // 1MB in KB

    // exclude admins
    if ( ! current_user_can( \'manage_options\' ) ) {

        $current_size = $file[\'size\'];
        $current_size = $current_size / 1024; //get size in KB

        if ( $current_size > $file_size_limit ) {
            $file[\'error\'] = sprintf( __( \'ERROR: File size limit is %d KB.\' ), $file_size_limit );
        }

    }

    return $file;

}
add_filter ( \'wp_handle_upload_prefilter\', \'limit_upload_size\', 10, 1 );
希望有帮助!

SO网友:Christine Cooper

你可以加入upload_size_limit 并设置最大文件大小:

// Change the upload size to 1MB
add_filter( \'upload_size_limit\', \'wpse_228300_change_upload_size\' ); 
function wpse_228300_change_upload_size()
{
    return 1000 * 1024;
}

SO网友:Krystian Juraszek

对我来说,这太棒了!

  function my_max_image_size( $file ) {
  $size = $file[\'size\'];
  $size = $size / 1024;
  $type = $file[\'type\'];
  $is_image = strpos( $type, \'image\' ) !== false;
  $limit = 750;
  $limit_output = \'750kb\';
  if ( $is_image && $size > $limit ) {
    $file[\'error\'] = \'Image files must be smaller than \' . $limit_output;
  }
  return $file;
}
add_filter( \'wp_handle_upload_prefilter\', \'my_max_image_size\' );

SO网友:yousaf

1: Theme Functions File

有些情况下,我们已经看到,只需在主题函数的文件中添加以下代码,就可以增加上载大小:

@ini_set( \'upload_max_size\' , \'64M\' );
@ini_set( \'post_max_size\', \'64M\');
@ini_set( \'max_execution_time\', \'300\' );

2. Create or Edit an existing PHP.INI file

在大多数情况下,如果您在共享主机上,则不会看到php。目录中的ini文件。如果没有看到,那么创建一个名为php的文件。ini并将其上载到根文件夹中。在该文件中添加以下代码:

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

3. htaccess Method

一些人尝试使用htaccess方法,其中通过修改.htaccess 在根目录中,您可以增加WordPress中的最大上载大小。打开或创建.htaccess 文件并添加以下代码:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

相关推荐

从wp.media.editor.附件获取所选图像URL到文本输入失败。我做错了什么?

我已将媒体按钮作为post meta field 在以下情况下将图像URL插入文本字段Insert Into Page 单击按钮。它一直工作到打开“媒体存储库”窗口、选择“图像”和“插入”为止,但没有向输入字段传递任何值。Expected result结果应该是URL和媒体ID插入为https://avalon.com/dev/wp-content/uploads/2021/01/scp7147prko31.jpg|12 但没有返回值。我可以手动输入URL并保存数据。我彻底扫描了我的代码,并尝试了许多ja