PicGo/PicGo-Core

文件后缀不准确的问题

Ximeng0918 opened this issue · 10 comments

当上传地址携带参数时,文件后缀获取不准确
如:https://www.xxxxxxx.com/b233f92a5.jpg?token=624074204ae795754d

正确后缀应为 .jpg,而从 ctx.output 中的extname属性获取则为 .jpg?token=624074204ae795754d

盲猜应该是 node的 path包中的 path.extname方法获取的问题

通过url上传图片么?确实可能会有问题,后续处理一下

看了一下实现,如果通过URL上传,extname是通过返回的请求头里的content-type取的,按理说content-type不应该会带上query参数。
能否给一张可以复现的图片地址+复现方式?

开始我也看了源码实现,也看到了是通过返回的请求头里的content-type取的,所以我很疑惑,并没有找到原因
我的复现方式是用命令测试

@chcp 65001 >nul & cmd /d/s/c picgo.exe u "https://www.xxxxxxx.com/b233f92a5.jpg?token=624074204ae795754d"

下面几种地址都会获取不到文件后缀问题

第一种:携带参数

第二种:URL携带# hash

第二种:URL无文件后缀

这种暂时没找到当时的复现地址
大概类似这种 https://www.xxxxxxx.com/2021/09/2512/231056295_2_20210925123552850

嗯大概知道问题,fileName是通过path.basename取值的,这样对于url会有问题。

这里回头做一下优化吧

嗯大概知道问题,fileName是通过path.basename取值的,这样对于url会有问题。

这里回头做一下优化吧

看了一下取的是URL之后的pathname应该是没问题的。

image

你这边用的是PicGo-GUI版本做的上传,想问问你的PicGo-GUI版本是多少呢?

哦 PicGo-Gui 的cli还不能上传URL链接。你用的PicGo-Core的版本是多少呢?太旧的版本确实有这个问题。新的版本应该已经没有这个问题了。

最新的版本 npm install picgo@alpha --latest -g

如果你用的是typora内置的那个picgo-core,那个版本已经很旧了,建议全局安装新的picgo-core使用哈。

版本是 1.4.7 貌似确实很旧

版本是 1.4.7 貌似确实很旧

嗯,新的版本已经解决这个问题了

我说我昨天扒拉一个多小时源码愣是没找到问题所在,麻烦你了