拒绝使用Media Uploader上传大小错误的图像

时间:2014-08-04 作者:moraleida

我正在进行一项超级严格的设置,以便在后期编辑屏幕中向自定义字段添加图像。我的最佳方案是,当用户尝试为特定自定义值上载错误大小的图像时,添加一条自定义错误消息。

我知道我可以用任何自定义上传器来实现这一点,但我更喜欢用常规媒体上传器。我也知道wp_handle_upload_prefilter 我已经使用它来验证文件名,并根据一般要求生成自定义错误消息。我现在需要的是一种使用自定义需求的方法,根据上载到的字段拒绝上载。

我也知道Differentiate Featured Image from Post Images upon Upload 但我想要一个预保存解决方案。

这看起来像这样:

enter image description here

关于如何进行通知有什么想法吗wp_handle_upload_prefilter (或类似)我们正在处理哪个领域的问题?

1 个回复
SO网友:YaFred

在处理程序中,如果设置“error”,将显示错误消息并取消上载

add_filter( \'wp_handle_upload_prefilter\', \'custom_upload_filter\' );

function custom_upload_filter( $file ) {
    $image_info   = getimagesize( $file[\'tmp_name\'] );
    $image_width  = $image_info[0];
    $image_height = $image_info[1];

    if ( $image_with !== 800 || $image_height !== 600 ) {
        $file[\'error\'] = __( \'Images must be sized exactly 800 * 600\', \'your_textdomain\' );
    }
    return $file;
}
如果您的用户尝试上载不同大小的文件,则消息将为:

“thefile.png” has failed to upload due to an error  
Size must be exactly 800 * 600
请注意wp_handle_upload_prefilter 在上传处理的早期,因此您可能需要在测试大小之前测试文件是否已正确上传(从HTTP的角度来看)并且是图像。

参考:功能wp_handle_upload() 在核心文件中wp-admin/includes/file.php

结束

相关推荐

定义`GET_POST_QUALUALY_Images`的大小,它们似乎已调整为150x150

我正在使用get_post_gallery_images 它可以输出150x150的图像。它看起来不需要大小参数,所以我假设它只会显示最大的图像,或者最好是我定义的一个大小。150x150太小了,有没有地方可以声明我想要多大尺寸的画廊图片?例如,我正在做:<?php $gallery = get_post_gallery_images( $post ); foreach ($gallery as $img) { ?> <li><img src