搜尋

首頁  >  問答  >  主體

node.js - resquest.js pipe 資料流下載檔案時, 如何自動取得檔案後綴名並儲存? 在哪一步加入?

我想要在 fs.createWriteStream 之前取得到這個連結的後綴名稱
之後再 pipe 到這個資料流中儲存檔案.

Promise 的方式我試過, then 之後就是完整的 response, 不能寫入資料流.
並且 fs.writeFile 方法我也試過了, 寫入格式不正確.

注意哈: URL中沒有檔案後綴名

下面是程式碼

const fs = require('fs');
const Promise = require('bluebird');
const request = require('request');

let url = 'http://mmbiz.qpic.cn/mmbiz_jpg/D1Wza369eswnoapNaAdvtqygvMAnViaCLa8AMwwDZ4rebKrPvicxFf8zuibfialkPD3A7w8omWjicVm7GhFWcsibfGibw/0';
let file = fs.createWriteStream('file');

request
    .get(url)
    .on('response', function (response) {
        let type = response.headers['content-type']
        type = '.' + type.substring(type.lastIndexOf('/') + 1);
        console.log(type);
        // 在这里加是不可以的
    })
    .pipe(file)
    .on('end', function () {
        console.log('end')
    })
阿神阿神2750 天前1327

全部回覆(1)我來回復

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:30:40

    雷雷

    回覆
    0
  • 取消回覆