修改增加WP上傳文件類(lèi)型上傳失敗的問(wèn)題
WP默認(rèn)配置支持一些常用文件類(lèi)型,但是有一些默認(rèn)沒(méi)有設(shè)置的文件類(lèi)型就不能上傳,而我們可以配置允許上傳我們需要上傳的文件類(lèi)型。
我就測(cè)試上傳ZB插件包.zba,PHP上傳files獲取.zba的文件類(lèi)型就是 application/octet-stream,
然后WP主題或者插件加入
add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes($existing_mimes=array()) { // 添加支持上傳的文件類(lèi)型 $existing_mimes['zba']='application/octet-stream'; return $existing_mimes; }
再上傳.zbp還是上傳失敗提示:抱歉,您無(wú)權(quán)上傳此文件類(lèi)型。
然后去檢查WP源碼發(fā)現(xiàn),如果你的PHP開(kāi)啟了fileinfo擴(kuò)展,就是會(huì)重新讀取臨時(shí)文件$file的文件類(lèi)型
$finfo = finfo_open( FILEINFO_MIME_TYPE ); $real_mime = finfo_file( $finfo, $file ); finfo_close( $finfo );
然后這個(gè).zba文件類(lèi)型居然是:application/xml,知道了真實(shí)文件類(lèi)型就好解決問(wèn)題了,把上面的代碼改下,就能正常上傳這個(gè).zba文件了。
add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes($existing_mimes=array()) { // 添加支持上傳的文件類(lèi)型 $existing_mimes['zba']='application/xml'; return $existing_mimes; }
測(cè)試發(fā)現(xiàn)如果PHP不支持fileinfo的話,這個(gè)配置就很簡(jiǎn)單了,$existing_mimes['zba']='1'; 只要設(shè)置正確的文件后綴,而文件類(lèi)型隨意設(shè)置都能夠正常上傳。
《修改增加WP上傳文件類(lèi)型上傳失敗的問(wèn)題》.doc
將本文下載保存,方便收藏和打印
導(dǎo)出文檔