lsky-pro
lsky-pro copied to clipboard
图片重命名问题
上传的图片名如果带有空格会被替换为+号上传,导致缩略图预览出错
我测试了一下,是可以正常显示的,空格不是被替换成+号,而是 %20
我测试了一下,是可以正常显示的,空格不是被替换成+号,而是
%20
实际上缩略图是%20,然而COS里面上传的成+号…所以缩略图拿不到
@z0z0r4 这个涉及到兼容性问题了,我不清楚是不是所有第三方储存都会将空格换成+号,所以这个你要必须用原文名称规则的话,那就修改代码吧。 https://github.com/lsky-org/lsky-pro/blob/a4a60f13a074189c7c67101d5ae9ad8567cbcca1/app/Models/Image.php#L169 将这一行修改为
return new Attribute(fn() => urlencode("{$path}{$this->name}"));
RFC-1738标准下,空格在编码以后为 “+”,但是在RFC-2396标准下,空格在编码后为“%20”。应该是采取的标准不同导致的。
@z0z0r4 这个涉及到兼容性问题了,我不清楚是不是所有第三方储存都会将空格换成+号,所以这个你要必须用原文名称规则的话,那就修改代码吧。
https://github.com/lsky-org/lsky-pro/blob/a4a60f13a074189c7c67101d5ae9ad8567cbcca1/app/Models/Image.php#L169
将这一行修改为
return new Attribute(fn() => urlencode("{$path}{$this->name}"));
不能从储存策略判断下吗
@z0z0r4 这个涉及到兼容性问题了,我不清楚是不是所有第三方储存都会将空格换成+号,所以这个你要必须用原文名称规则的话,那就修改代码吧。
https://github.com/lsky-org/lsky-pro/blob/a4a60f13a074189c7c67101d5ae9ad8567cbcca1/app/Models/Image.php#L169
将这一行修改为
return new Attribute(fn() => urlencode("{$path}{$this->name}"));
我这用原文件名主要是莫名其妙有时候上传成功有时候显示失败…再极端点,COS传上去的图会漏几个字符,导致显示上传成功但实际上拿不到图,很迷茫 暂无log因为没空…晚几天提issue 可能是我桶在南京网站在香港造成的?未知