修改增加WP上傳文件類型上傳失敗的問題
WP默認配置支持一些常用文件類型,但是有一些默認沒有設(shè)置的文件類型就不能上傳,而我們可以配置允許上傳我們需要上傳的文件類型。
我就測試上傳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擴展,就是會重新讀取臨時文件$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; }
測試發(fā)現(xiàn)如果PHP不支持fileinfo的話,這個配置就很簡單了,$existing_mimes['zba']='1'; 只要設(shè)置正確的文件后綴,而文件類型隨意設(shè)置都能夠正常上傳。
《修改增加WP上傳文件類型上傳失敗的問題》.doc
將本文下載保存,方便收藏和打印
導(dǎo)出文檔