16
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsで画像アップロードを受けつけるサーバー

Last updated at Posted at 2017-08-29

カメラ撮影したものをサーバーにアップロードする仕組みを作っています。

クライアント側コードはまた別途

今回はサーバー側のミニマム構成っぽいものを書いてみたのでメモです。
環境はNode.js v8.2.0です。

準備

expressだけ使っているので

npm i --save express

だけはやります。

コード

server.js
'use strict';

const fs = require('fs');
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => res.send('POSTでアップロードしてください。'));

app.post('/', (req, res) => {
    let buffers = [];
    let cnt = 0;

    req.on('data', (chunk) => {
        buffers.push(chunk);
        console.log(++cnt);
    });

    req.on('end', () => {
        console.log(`[done] Image upload`);
        req.rawBody = Buffer.concat(buffers);
        //書き込み
        fs.writeFile('./img.jpeg', req.rawBody, 'utf-8',(err) => {
            if(err) return;
            console.log(`[done] Image save`);
        });
    });
});
 
app.listen(PORT);

実行

node app.js

こんな感じで普通にサーバーを立てます。

その後画像データが送信されるとこんな感じでプログレス表示のように表示されます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[done] Image upload
[done] Image save

無事に保存できました。

16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?