cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Apabila strim data paip resquest.js memuat turun fail, bagaimana untuk mendapatkan nama akhiran fail secara automatik dan menyimpannya Dalam langkah manakah saya harus menambahkannya?

Saya ingin mendapatkan nama akhiran pautan ini sebelum fs.createWriteStream
dan kemudian paipkannya ke strim data ini untuk menyimpan fail.

Saya mencuba kaedah Promise, dan kemudian ada respons yang lengkap, yang tidak boleh ditulis ke aliran data.
Dan saya juga mencuba kaedah fs.writeFile, tetapi format penulisan tidak betul.

Nota: Tiada sambungan fail dalam URL

Ini kodnya

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 hari yang lalu1324

membalas semua(1)saya akan balas

  • 我想大声告诉你

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

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

    balas
    0
  • Batalbalas