限制 jpg 和 pdf 上传的文件大小

limit file size for jpg and pdf uploads

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

理想情况下,我需要限制 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类型,即application/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