gpt4 book ai didi

puppeteer - 是否可以知道正在下载的文件的名称或在下载前设置名称?

转载 作者:行者123 更新时间:2023-12-03 14:32:59 26 4
gpt4 key购买 nike

我正在使用 puppeteer 下载大量文件,但我需要在下载完成之前或之后知道每个文件的名称。观看文件夹中的文件更改并不能解决我的问题,因为有很多进程同时下载文件并且现在有办法匹配它们。
我一直在尝试为每个文件设置一个自定义的下载路径,但是 Puppeteer 做了一些奇怪的事情,有些下载到那个文件夹,有些下载到/Downloads。
所以,我想知道是否有办法在下载之前知道名称或在下载之前设置文件的名称。这样我就可以通过代码正确匹配它。
注意:文件是通过 JS 下载的,即当点击按钮时。无法通过 知道文件名刮 因为它是自动生成的。

最佳答案

如果下载是由页面触发的,这是通过使用 Content-Disposition 来完成的。标题。很可能, header 还包含文件名作为 header 的一部分。

示例

下面是标题的示例:

Content-Disposition: attachment; filename="name_of_download.ext"

为了读取文件名,您可以通过查看 response.headers() 来查看文件名。 .在下面的示例中,我在此之后使用正则表达式来提取文件名:

const contentDisposition = response.headers()['content-disposition'];
const matchFilename = contentDisposition.match(/filename="(.*)"/);
if (matchFilename) {
const filename = matchFilename[1];
}

非 ASCII 字符

根据您下载的文件,您可能还想查看此 stackoverflow answer关于非 ASCII 文件名的编码。

关于puppeteer - 是否可以知道正在下载的文件的名称或在下载前设置名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56552724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com