2017-09-15 7 views
1

をファイルを作成します。私は必要なもの私はこのような何か持っているサーバ側で、フロントエンドクライアント側からファイルを送信していますバッファデータに基づいて

{ name: 'CV-FILIPECOSTA.pdf', 
    data: <Buffer 25 50 44 46 2d 31 2e 35 0d 25 e2 e3 cf d3 0d 0a 31 20 30 20 6f 62 6a 0d 3c 3c 2f 4d 65 74 61 64 61 74 61 20 32 20 30 20 52 2f 4f 43 50 72 6f 70 65 72 ... >, 
    encoding: '7bit', 
    mimetype: 'application/pdf', 
    mv: [Function: mv] } 

することは、多分、そのバッファに基づいてファイルを作成することですそこには、どうすればいいの?私はすでに多くを探していて、解決策を見つけることはできませんでした。

これは私がこれまで試したものです:

router.post('/upload', function(req, res, next) { 
    if(!req.files) { 
    return res.status(400).send("No Files were uploaded"); 
    } 
    var curriculum = req.files.curriculum; 
    console.log(curriculum); 
    curriculum.mv('../files/' + curriculum.name, function(err) { 
    if (err){ 
     return res.status(500).send(err);  
    } 
    res.send('File uploaded!'); 
    }); 
}); 

答えて

3

あなたはNodeJSで利用可能なBuffer使用することができます

let buf = Buffer.from('this is a test'); 
// buf equals <Buffer 74 68 69 73 20 69 73 20 61 20 74 65 73 74> 

let str = Buffer.from(buf).toString(); 
// Gives back "this is a test" 

Encodingもオーバーロードさfrom方法で指定することができます。

const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex'); 
// This tells that the first argument is encoded as a hexadecimal string 

let str = buf2.toString(); 
// Gives back the readable english string 
// which resolves to "this is a tést" 

は、あなたが読みやすい形式で利用可能なデータを取得したら、あなたはNodeJSでfsモジュールを使用して、それを格納することができます。

fs.writeFile('myFile.txt', "the contents of the file", (err) => { 
    if(!err) console.log('Data written'); 
}); 

ので、文字列にバッファリングされた入力を変換した後、あなたはwriteFileメソッドに文字列を渡す必要があります。 fsモジュールのドキュメントを確認できます。物事をよりよく理解するのに役立ちます。

+0

ありがとうございますが、どうやってfsに渡すことができないので、ファイルを作成できます。基本的にはfsモジュールの仕組みを知っていますが、文字列を渡すことができます。 –

+0

私は簡単な例を教えていただけますか? –

+0

@costacosta 'writeFile'メソッドで更新しました。これが役に立ったら教えてください。 –

関連する問題