ueeditor无法上传图片_ueditor上传图片中文文件名失败的解决办法

ueditor是一个非常不错的在线html编辑器,作为百度的产品,在百度贴吧等应用中广泛应用,经受了时间和用户的考验,功能,性能和稳定性来说都是不错的。太仓人才网目前正在测试将原有的html编辑器替换成ueditor。

在试验的过程中,发现ueditor 默认使用时间戳加上6位随机数作为上传图片的名称,这样就导致一个问题,不管用户上传的是“简历.jpg”还是“myphotos.jpg”在服务器端都会变成类似 “1416821640984672.jpg”这样一串数字的文件名。对于日后文件的识别和管理非常不方便。在php版本的ueditor中,php文件夹中,可以通过config.json来更改这一设置。我将保存文件名更改成了 {time}_{filename} 这样,如果用户上传的文件是“我的照片.jpg”服务器端就会保存为类似 ”1416821640_我的照片.jpg“。这一设计也和之前太仓人才网的html编辑器一致。

在修改好这一配置后,开始上传了几个图片也都正常,但是在上传某些文件名带有中文的图片时,出现的上传错误,并且不能显示图片。查看html源代码,发现img src的路径是正确的,但是图片不能显示。

b13f71cce4590b12058a3310c7479cd1.png

到服务器上的上传文件夹去一看,文件是有了,但是文件名变成了乱码”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);

if (!(move_uploaded_file($file["tmp_name"], $saveFilePath) && file_exists($saveFilePath))) {

$this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");

} else {

$this->stateInfo = $this->stateMap[0];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值