ueditor上传图片中文文件名失败的解决办法
ueditor是一个非常不错的在线html编辑器,作为百度的产品,在百度贴吧等应用中广泛应用,经受了时间和用户的考验,功能,性能和稳定性来说都是不错的。
在试验的过程中,发现ueditor 默认使用时间戳加上6位随机数作为上传图片的名称,这样就导致一个问题,不管用户上传的是“简历.jpg”还是“myphotos.jpg”在服务器端都会变成类似 “1416821640984672.jpg”这样一串数字的文件名。对于日后文件的识别和管理非常不方便。在php版本的ueditor中,php文件夹中,可以通过config.json来更改这一设置。我将保存文件名更改成了 {time}_{filename} 这样,如果用户上传的文件是“我的照片.jpg”服务器端就会保存为类似 ”1416821640_我的照片.jpg“。
在修改好这一配置后,开始上传了几个图片也都正常,但是在上传某些文件名带有中文的图片时,出现的上传错误,并且不能显示图片。查看html源代码,发现img src的路径是正确的,但是图片不能显示。
到服务器上的上传文件夹去一看,文件是有了,但是文件名变成了乱码”1417049031_涓枃.jpg“,而不是期望的”1417049031_中文.jpg“,原因就是UTF版本的ueditor保存的中文文件名也是utf8的。解决方法很简单,找到其处理上传的核心文件,Upload.class.php,在第120行左右,将
//移动文件
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];
}
//改为
//移动文件
$saveFilePath=iconv("UTF-8", "GBK//IGNORE",$this->filePath);//GBK//IGNORE可以替换为gb2312
if (!(move_uploaded_file($file["tmp_name"], $saveFilePath) && file_exists($saveFilePath))) {
$this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
} else {
$this->stateInfo = $this->stateMap[0];
}
- 【ueditor】上传文件中文文件名失败和在线附件看不到的解决办法
- 百度ueditor图片上传提示“上传失败,请重试”解决办法
- 关于UEditor编辑器远程图片上传失败的解决办法
- 百度ueditor图片上传提示“上传失败,请重试”解决办法
- 关于UEditor远程图片上传失败的解决办法
- ASP版百度ueditor图片上传提示“上传失败,请重试”解决办法
- 关于UEditor编辑器远程图片上传失败的解决办法
- asp.net应用百度编辑器(UEditor)上传图片和上传附件不成功的解决办法
- wordpress 上传附件中文文件名乱码解决办法(for Windows)
- ckfinder 无法上传中文文件名的图片的解决方法。
- 解决jeesite ckfinder上传中文文件名图片无法预览的问题
- ueditor在struts2下图片上传出错的问题的解决办法
- [图片处理]PHP对非标准格式的图片pjpeg上传失败的解决办法
- ueditor1_2_6_1-utf8-net传解决本地图片上传失败问题
- asp.net应用百度编辑器(UEditor)上传图片跟上次附件不成功的解决办法
- ueditor上传图片时目录创建失败的问题解决方法,不用那么麻烦,其实修改php/config.json这个配置文件里面的路径就行!!
- struts2 jsp ueditor 上传图片失败,获取不到值,解决方法
- Fckeditor上传图片文件名重名及中文乱码解决方法
- ueditor上传图片时自动压缩图片的解决办法
- 上传文件,经过Zuul,中文文件名乱码解决办法