public function fileup(){ $upload = new \Think\Upload();// 執行個體化上傳類 $upload->maxSize = 1024*1024*2 ;// 設定附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 設定附件上傳類型 $upload->rootPath = './Public/Uploads/'; // 設定附件上傳根目錄 $upload->savePath = ''; // 設定附件上傳(子)目錄 // 上傳檔案 $info = $upload->upload(); if(!$info) {// 上傳錯誤提示錯誤資訊 $this->ajaxReturn($upload->getError()); }else{// 上傳成功 foreach ($info as $file) { $data['filename'] = $file['name']; $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename']; $data['filesize'] = $file['size']; $this->ajaxReturn($data); } } }
我在使用upploadify外掛程式上傳檔案,如果上傳失敗,就返回錯誤資訊,
但是$this->ajaxReturn($upload->getError());返回的是unicode編碼?
\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8
請問為什麼會返回unicode編碼嗎?是因為什麼呢?
不能直接顯示漢字嗎?
回複內容:
public function fileup(){ $upload = new \Think\Upload();// 執行個體化上傳類 $upload->maxSize = 1024*1024*2 ;// 設定附件上傳大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'zip', 'xls', 'rar');// 設定附件上傳類型 $upload->rootPath = './Public/Uploads/'; // 設定附件上傳根目錄 $upload->savePath = ''; // 設定附件上傳(子)目錄 // 上傳檔案 $info = $upload->upload(); if(!$info) {// 上傳錯誤提示錯誤資訊 $this->ajaxReturn($upload->getError()); }else{// 上傳成功 foreach ($info as $file) { $data['filename'] = $file['name']; $data['filepath'] = 'uploads/'.$file['savepath'].$file['savename']; $data['filesize'] = $file['size']; $this->ajaxReturn($data); } } }
我在使用upploadify外掛程式上傳檔案,如果上傳失敗,就返回錯誤資訊,
但是$this->ajaxReturn($upload->getError());返回的是unicode編碼?
\u4e0a\u4f20\u6587\u4ef6\u540e\u7f00\u4e0d\u5141\u8bb8
請問為什麼會返回unicode編碼嗎?是因為什麼呢?
不能直接顯示漢字嗎?
thinkphp的ajaxreturn 是直接將漢字json_encode 然後返回輸出
你可以先將漢字urlencode再json_encode最後再urldecode就可以了
或者你直接將資訊echo出來 不json_encode,漢字就不會被編碼成unicode
並不一定要用$this->ajaxReturn
可以直接用 json_encode
,加上第二個參數就好SON_UNESCAPED_UNICODE
(這個參數你使用的版本應該支援)
還有個建議 成功與失敗返回的資料格式一致 都是json
別外 怎麼會寫到foreach
裡面去$this->ajaxReturn