1

我不精通 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)在此先感谢,克里斯。

4

1 回答 1

1

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

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
于 2020-01-05T03:10:47.863 回答