簡體   English   中英

Node.js和Request.js:查找下載的文件擴展名?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM