我正在尝试为前端的wordpress用户制作上传头像图片。我正在使用此代码
$files = $_FILES['post_files'];
foreach($files as $file){
if(is_array($file)){
$uploaded_file_type = $file['type'];
$allowed_file_types = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
if(!in_array($uploaded_file_type, $allowed_file_types)) {
$errors['image_empty'] = __( 'this image is not valid', 'themename' );
}
}
}
它不允许上传php文件,但如果他们将php文件扩展名更改为png或jpeg,他们可以将php文件上传到我的服务器。我尝试使用getimagesize()
,但我不能,我是php的新手。或者还有其他解决方案吗?
感谢答案
答案 0 :(得分:1)
如果你使用Wordpress图像上传器(媒体上传器对比),请使用:
禁用任何文件格式:
add_filter('upload_mimes','remove_mime_types');
function remove_mime_types($mimes){
unset( $mimes['mp4'] );
}
启用任何文件格式:
add_filter('upload_mimes','add_custom_mime_types');
function add_custom_mime_types($mimes){
return array_merge($mimes,array (
'ac3' => 'audio/ac3',
'mpa' => 'audio/MPA',
'flv' => 'video/x-flv',
'svg' => 'image/svg+xml'
));
}
有关更多信息,请访问paulund的文章:https://paulund.co.uk/change-wordpress-upload-mime-types