Php opencart-插入图像的Url编码不正确

Php opencart-插入图像的Url编码不正确,php,opencart,Php,Opencart,在ckeditor中插入图像时,url输出为http://site.com/image/data/004 -复制.jpg而不是http://site.com/image/data/004%20-%20Copy.jpg 请记住,图像会正确显示在网站上,但当我想发送电子邮件时,电子邮件客户端(例如gmail)会将url文件名编码为http://site.com/image/data/004+-+Copy.jpg返回404 我可以用rawurlencode()解决这个问题,但似乎找不到添加它的位置。有

在ckeditor中插入图像时,url输出为
http://site.com/image/data/004 -复制.jpg
而不是
http://site.com/image/data/004%20-%20Copy.jpg

请记住,图像会正确显示在网站上,但当我想发送电子邮件时,电子邮件客户端(例如gmail)会将url文件名编码为
http://site.com/image/data/004+-+Copy.jpg
返回404

我可以用rawurlencode()解决这个问题,但似乎找不到添加它的位置。有什么想法吗?

编辑: 我找到了要编辑的位置(filemanager.tpl)

window.opener.CKEDITOR.tools.callFunction(,''+$(this.find('input[name=\'image\'])).attr('value')


如何使用rawurlencode对
$(this).find('input[name=\'image\']').attr('value')
)进行编码?

显然,您不能直接使用PHP的
rawurlencode
,但您可以通过实现自己的JavaScript版本的函数来进行即兴创作

function rawurlencode (str) {
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
    replace(/\)/g, '%29').replace(/\*/g, '%2A');
}
而且

rawurlencode($(this).find('input[name=\'image\']').attr('value'));

显然,您不能直接使用PHP的
rawurlencode
,但您可以通过实现自己的JavaScript版本的函数来进行即兴创作

function rawurlencode (str) {
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
    replace(/\)/g, '%29').replace(/\*/g, '%2A');
}
而且

rawurlencode($(this).find('input[name=\'image\']').attr('value'));

也许一个快速而肮脏的解决办法是不上传有空格的文件?或者我遗漏了什么(我不知道/使用opencart)是的,这将是一个简单的修复,但已经有很多图片,这个网站是为一个客户。重命名图片也将是正确的事情,不仅仅是一个快速修复,IMHO。对我来说,走另一条路听起来更像是一个快速解决办法。要方便地批量重命名,请参阅以下帖子:[bulk-rename-files-in-a-folder-php]()。也许一个快速而肮脏的修复方法是不上载包含空格的文件?或者我遗漏了什么(我不知道/使用opencart)是的,这将是一个简单的修复,但已经有很多图片,这个网站是为一个客户。重命名图片也将是正确的事情,不仅仅是一个快速修复,IMHO。对我来说,走另一条路听起来更像是一个快速解决办法。要方便地批量重命名,请参阅以下帖子:[bulk-rename-files-in-a-folder-php]()。