2017-11-13 15 views
0

requestを使用していくつかのファイルをダウンロードしようとしていますが、その拡張子がどのようになっているかわかりません。いくつかは画像であり、いくつかは音声であり、いくつかは動画ですが、それらのすべては最後に拡張子のないURLから来ています。Node.jsとRequest.js:ダウンロードのファイル拡張子を見つける?

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ドライブのリンクのようなものを考えてみましょう。

有効な拡張子がない限り、これらのファイルを開くことができないので、私はいくつかの助けに感謝します。

答えて

1

ヘッダを通じてファイルの種類を送信する必要があり、ウェブサイトからの応答、最も可能性が高い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 

}); 
+0

はこのためにあなたに感謝し、ファイルタイプをインストールし、それがコンテンツ・処分していたが、私は、ファイルの拡張子を取得する奇妙な方法でした: 'result.headers [「コンテンツ配置を」 ] .split( "。")。pop()。slice(0、-1) ' – MysteryPancake

1

ファイルタイプ 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'} 
});}); 
関連する問題