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