滾動(dòng)信息:ueditor是一個(gè)非常不錯(cuò)的在線html編輯器,作為百度的產(chǎn)品,在百度貼吧等應(yīng)用中廣泛應(yīng)用,經(jīng)受了時(shí)間和用戶的考驗(yàn),功能,性能和穩(wěn)定性來說都是不錯(cuò)的。太倉人才網(wǎng)目前正在測試將原有的html編輯器替換成ueditor。
在試驗(yàn)的過程中,發(fā)現(xiàn)ueditor 默認(rèn)使用時(shí)間戳加上6位隨機(jī)數(shù)作為上傳圖片的名稱,這樣就導(dǎo)致一個(gè)問題,不管用戶上傳的是“簡歷.jpg”還是“myphotos.jpg”在服務(wù)器端都會(huì)變成類似 “1416821640984672.jpg”這樣一串?dāng)?shù)字的文件名。對于日后文件的識(shí)別和管理非常不方便。在php版本的ueditor中,php文件夾中,可以通過config.json來更改這一設(shè)置。我將保存文件名更改成了 {time}_{filename} 這樣,如果用戶上傳的文件是“我的照片.jpg”服務(wù)器端就會(huì)保存為類似 ”1416821640_我的照片.jpg“。這一設(shè)計(jì)也和之前太倉人才網(wǎng)的html編輯器一致。
在修改好這一配置后,開始上傳了幾個(gè)圖片也都正常,但是在上傳某些文件名帶有中文的圖片時(shí),出現(xiàn)的上傳錯(cuò)誤,并且不能顯示圖片。查看html源代碼,發(fā)現(xiàn)img src的路徑是正確的,但是圖片不能顯示。

到服務(wù)器上的上傳文件夾去一看,文件是有了,但是文件名變成了亂碼”1417049031_涓?枃.jpg“,而不是期望的”1417049031_中文.jpg“,原因就是UTF版本的ueditor保存的中文文件名也是utf8的。解決方法很簡單,找到其處理上傳的核心文件,Upload.class.php,在第120行左右,將
//移動(dòng)文件
if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) {
$this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
} else {
$this->stateInfo = $this->stateMap[0];
}
//改為
//移動(dòng)文件
$saveFilePath=iconv("UTF-8", "GBK//IGNORE",$this->filePath);
if (!(move_uploaded_file($file["tmp_name"], $saveFilePath) && file_exists($saveFilePath))) {
$this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
} else {
$this->stateInfo = $this->stateMap[0];
}


