ограничить размер файла для загрузки jpg и pdf
Я не разбираюсь в php, но я нашел фрагмент, который ограничивает моих пользователей от загрузки файлов изображений на мой сайт WordPress, размер которых превышает 1 МБ. (Я отредактирую это ограничение в соответствии со своими требованиями). Я предполагаю, что файлы изображений - это 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) Заранее спасибо, Крис.
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]: вы можете определить MIME-тип PDF, которым является 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