修改增加WP上传文件类型上传失败的问题
WP默认配置支持一些常用文件类型,但是有一些默认没有设置的文件类型就不能上传,而我们可以配置允许上传我们需要上传的文件类型。
我就测试上传ZB插件包.zba,PHP上传files获取.zba的文件类型就是 application/octet-stream,
然后WP主题或者插件加入
add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes($existing_mimes=array()) { // 添加支持上传的文件类型 $existing_mimes['zba']='application/octet-stream'; return $existing_mimes; }
再上传.zbp还是上传失败提示:抱歉,您无权上传此文件类型。
然后去检查WP源码发现,如果你的PHP开启了fileinfo扩展,就是会重新读取临时文件$file的文件类型
$finfo = finfo_open( FILEINFO_MIME_TYPE ); $real_mime = finfo_file( $finfo, $file ); finfo_close( $finfo );
然后这个.zba文件类型居然是:application/xml,知道了真实文件类型就好解决问题了,把上面的代码改下,就能正常上传这个.zba文件了。
add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes($existing_mimes=array()) { // 添加支持上传的文件类型 $existing_mimes['zba']='application/xml'; return $existing_mimes; }
测试发现如果PHP不支持fileinfo的话,这个配置就很简单了,$existing_mimes['zba']='1'; 只要设置正确的文件后缀,而文件类型随意设置都能够正常上传。
导出文档
打赏作者
《修改增加WP上传文件类型上传失败的问题》.doc
将本文下载保存,方便收藏和打印
导出文档