限制 JPG 和 PDF 上传的文件大小



我不擅长php,但我发现了一个片段,它将限制我的用户将大于1mb的"图像"文件上传到我的wordpress网站。(我将编辑此限制以满足我的要求(。 我假设"图像"文件是jpg,png等。但是pdf文件呢,这个片段也会限制它们,还是它们没有被归类为"图像"类型的文件?

理想情况下,我需要限制 jpg 和 pdf 文件。这需要修改吗?

// WP - LIMIT IMAGE UPLOAD SIZE
function max_image_size( $file ) {
$size = $file['size'];
$size = $size / 1024;
$type = $file['type'];
$is_image = strpos( $type, 'image' ) !== false;
$limit = 1024;  
$limit_output = '1MB';
if ( $is_image && $size > $limit ) {
$file['error'] = 'Image files must be smaller than ' . $limit_output;
}//end if
return $file;
}//end max_image_size()
add_filter( 'wp_handle_upload_prefilter', 'max_image_size' );

( 使用 php 7.2 ( 提前感谢, 克里斯。

如果要限制所有资源,请替换:

if ( $is_image && $size > $limit ) {
$file['error'] = 'Image files must be smaller than ' . $limit_output;
}//end if

跟:

if ( $size > $limit ) {
$file['error'] = 'Files must be smaller than ' . $limit_output;
}//end if

可选 [1]:可以将max_image_size函数重命名为 max_file_size,并将 addfilter 更改为 add_filter( 'wp_handle_upload_prefilter', 'max_file_size' (;

可选 [2]:您可以使用以下命令检测 PDF MIME 类型,即应用程序/pdf:

$is_pdf = strpos( $type, 'pdf' ) !== false;

并添加其他条件:

if ( $is_image && $size > $limit ) {
$file['error'] = 'Image files must be smaller than ' . $limit_output;
}//end if
if ( $is_pdf && $size > $limit ) {
$file['error'] = 'PDF files must be smaller than ' . $limit_output;
}//end if

最新更新