nodeのファイルのアップロードでreq.files.hogeがundefinedになる
html側
<form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="uploadfile"/> <input type="submit" value="送信"/> </form>
node側
/* app.js */ .... app.post('/upload', function (req, res) { fs.readFile(req.files.uploadfile.path, function (err, data) { var newPath = __dirname + "/public/upload/image/" + req.files.uploadfile.originalname; fs.writeFile(newPath, data, function (err) { res.redirect("/"); }) }); }); ....
で、なんとなくサンプル作って実行してみると
undefinedになる・・・・
いろんなサイトサイトのサンプル試してみたけどダメだった。。。
で、辿り着いたのが、
どうやらbody-parserがmultipartに対応しなくなったらしい。
/* app.js */ var multer = require('multer'); app.use(multer({ dest: './upload/'})); ....
multerをつかったらうまく行った。