前提・実現したいこと
Node.jsで画像をサーバーアップロードして表示するというちょっとしたWebアプリケーションを作ろうとしています。
まずは画像をアップロードするところを作ろうと思い下記のサイトを参考にして作成しました。
しかし、アップロードされた画像が表示できない形式になってしまっているため、どうしたら表示できる形式で出力できるのか教えていただきたいです。
発生している問題
Fiddlerを用いてJEPG画像をPOSTしたところ、サーバー側で受信し、JPEG形式のファイルを出力させることができました。
しかし、いざJPEG画像を開くと「サポートされていない」とでてしまい、ファイル自体は0KBでもないのですが、開くことができません。
Textに出力させたところ沢山の文字列が入ってたため何かしら出力されているものと思いますが、なぜ表示できないのかわかりません。
該当のソースコード
Node.js
1'use strict'; 2 3const fs = require('fs'); 4const express = require('express'); 5const app = express(); 6const PORT = process.env.PORT || 3000; 7 8app.get('/', (req, res) => res.send('POSTでアップロードしてください。')); 9 10app.post('/', (req, res) => { 11 let buffers = []; 12 let cnt = 0; 13 14 req.on('data', (chunk) => { 15 buffers.push(chunk); 16 console.log(++cnt); 17 }); 18 19 req.on('end', () => { 20 console.log(`[done] Image upload`); 21 req.rawBody = Buffer.concat(buffers); 22 //書き込み 23 fs.writeFile('./img.jpg', req.rawBody, 'utf-8',(err) => { 24 if(err) return; 25 console.log(`[done] Image save`); 26 }); 27 }); 28}); 29 30app.listen(PORT);
試したこと
様々なJEPG画像で試しましたが、出力されるファイルのKBが変わるため送信はできていると思います。
補足情報(FW/ツールのバージョンなど)
環境は
Windows 10
Node.js v6.11.5
Powershell
を使用しています。
他にも画像をアップロードする方法をご存知でしたらご教授願いたいです。
また、そもそも画像をアップロード自体、Node.jsではしない等あれば、Webアプリケーションでは通常どのような手法が用いられるのかも教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/22 05:00
2020/04/23 00:42