腾讯云cos 文件上传,为了防止文件被覆盖,使用了key作为唯一标识的策略。
由于我们公司后端开发使用的是:时间戳—文件名
上传是:ioc.pdf
下载下来是:20220117165840-ioc.pdf
期待是 上传:ioc.pdf 下载下来文件名还是 ioc.pdf
另外,当用户下载的时候,中文名又会被浏览器进行编码,所以,下载到本地就是乱码
解决方案:
1.可以通过文件夹/文件名 来区分
2.前端解析重命名(已经验证)
export function baseDownload(url, name) {
const fileName = !name ? getUrlFileName(url) : name
const a = document.createElement('a')
a.download = fileName
a.href = url
a.target = '_blank'
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
/**
* @param {String} url
* @description 在url地址获取文件名
*/
export function getUrlFileName(url) {
if (typeof url !== 'string') return
const [, name] = decodeURI(url).match(/\/\d+-(.+)\?/)
return name
}