用nodejs的原生函数 下载网址附件,并从filename* 中获得文件名
时间: 2024-06-09 12:06:51 浏览: 11
下载网址附件可以使用Node.js的内置模块`http`或`https`来发送HTTP请求,并将响应写入本地文件。而从`filename*`中获取文件名则需要使用第三方模块`content-disposition`。
以下是一个示例代码:
```
const https = require('https');
const fs = require('fs');
const contentDisposition = require('content-disposition');
const fileUrl = 'https://example.com/file.pdf';
https.get(fileUrl, (res) => {
const filenameHeader = res.headers['content-disposition'];
const filenameMatch = contentDisposition.parse(filenameHeader).parameters.filename;
const filename = decodeURIComponent(filenameMatch.replace(/\+/g, ' '));
const file = fs.createWriteStream(filename);
res.pipe(file);
file.on('finish', () => {
file.close();
console.log(`File ${filename} downloaded successfully.`);
});
}).on('error', (err) => {
console.error(`Error downloading file: ${err}`);
});
```
这个示例代码会从`fileUrl`指定的URL下载一个文件,并从响应头部的`content-disposition`字段中解析出文件名,然后将响应内容写入本地文件。