node.js - Lorsque le flux de données du canal resquest.js télécharge un fichier, comment obtenir automatiquement le nom du suffixe du fichier et l'enregistrer. À quelle étape dois-je l'ajouter ?
阿神
阿神 2017-05-16 13:28:40
0
1
1364

Je souhaite obtenir le nom du suffixe de ce lien avant fs.createWriteStream
, puis le diriger vers ce flux de données pour enregistrer le fichier.

J'ai essayé la méthode Promise, puis il y a une réponse complète, qui ne peut pas être écrite dans le flux de données.
Et j'ai également essayé la méthode fs.writeFile, mais le format d'écriture est incorrect.

Remarque : Il n'y a pas d'extension de fichier dans l'URL

Voici le code

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')
    })
阿神
阿神

闭关修行中......

répondre à tous(1)
我想大声告诉你
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')
    })
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal