[英]Node.js and Request.js: Finding the file extension for a download?
我正在嘗試使用request下載幾個文件,但是我不知道如何找到它們的擴展名。 其中有些是圖像,有些是聲音,有些是視頻,但是它們全部來自沒有結尾的URL。
const request = require("request");
request.get({
url: "http://example.com/unknownextension",
})
.on("error", function(error) {
console.log(error);
})
.pipe(fs.createWriteStream("files/what.extension"));
當您訪問該網站時,它下載得很好。 想想類似Google雲端硬盤鏈接的東西。
除非它們具有有效的擴展名,否則我無法打開其中的任何文件,因此,我希望能提供一些幫助。
網站的回復應通過標頭,最可能的content-disposition
或
content-type
const request = require("request");
request.get({
url: "http://example.com/unknownextension",
})
.on("error", function(error) {
console.log(error);
})
.on('response', function (res) {
res.pipe(fs.createWriteStream("files/what." + res.headers['content-type'].split('/')[1]));
// it could also be content-dispostion or any other header, please check the headers first
});
文件類型 npm將解決您的目的。
npm安裝文件類型
const fileType = require('file-type');
http.get(url, res => {
res.once('data', chunk => {
res.destroy();
console.log(fileType(chunk));
//=> {ext: 'One of the supported file types', mime: 'The MIME type'}
});});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.