修改增加WP上传文件类型上传失败的问题

老阳 768 0

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;
}

1、修改增加WP上传文件类型上传失败的问题 - 老阳插件

测试发现如果PHP不支持fileinfo的话,这个配置就很简单了,$existing_mimes['zba']='1'; 只要设置正确的文件后缀,而文件类型随意设置都能够正常上传。


《修改增加WP上传文件类型上传失败的问题》.doc
将本文下载保存,方便收藏和打印
导出文档