解码url不能正常工作,我尝试了decodeuriccomponent



嗨,我有一个类似这样的URL:

https://linkhere?response-content-disposition=inline; filename="placeholder.jpg"; filename*=UTF-8''placeholder.jpg  response-content-type=image/jpeg&X-Amz-Algorithm=....sometextcontinueshere

我试图像这样解码它,我需要取文件名

const decodedUrl = decodeURIComponent("linkhere")

const urlParams = new URLSearchParams(decodedUrl);
const filename = urlParams.get('filename');
console.log(decodedUrl)

但是由于某种原因不能正常解码,你们有什么想法吗?

没有任何内置的东西可以神奇地获取文件名,因为它不是一个查询字符串参数。你可以做的最简单的事情就是改变任何构建它的东西,使它具有有效的querystring参数,这样你就可以解析它了。

使用已有的参数,您需要读取一个包含文件名的参数。之后,您将不得不从该字符串中解析出文件名。

基本思想:

var str = `https://linkhere?response-content-disposition=inline; filename="placeholder.jpg"; filename*=UTF-8''placeholder.jpg  response-content-type=image/jpeg&X-Amz-Algorithm=....sometextcontinueshere`;
const url = new URL(str);
const parts = url.searchParams.get('response-content-disposition').split(/;s/);
const fileNameParam = parts.find(x => x.startsWith('filename=')).match(/"([^"]+)"/)[1];
console.log(fileNameParam);

相关内容

  • 没有找到相关文章

最新更新