初心者で難しいことをやってしまっていますが、どうしても作りたくて無理は承知でやっております。
ExpressでMulterを使って画像をアップロードしたいが上手く行っておりません。
やってみたこと
enctype="multipart/form-data"の設置場所の確認。
MulterのREADMEを読んでみて、間違い探し。
結局、分からずじまいで、質問します。
結果(ターミナル)
Listening on port 3000...3000 [Object: null prototype] { image: 'スクリーンショット 2021-01-02 6.59.33.png' } undefined POST / 200 155.283 ms - 489 GET /stylesheets/style.css 304 15.109 ms - - [Object: null prototype] { image: 'IMG_1649.JPG' } undefined POST / 200 58.389 ms - 451 GET /stylesheets/style.css 304 2.276 ms - -
route.index.js
const express = require('express'); const router = express.Router(); const moment = require("moment"); const multer = require('multer'); const storage = multer.diskStorage({ destination: './public', filename: function(req, file, cb){ cb(null, file.originalname) } }) const upload = multer({storage: storage}) router .get("/", (req, res) => { res.render("index", { message: "メッセージが出力されます", date: "入力した時刻を表示します" }); }) .post("/", upload.single('image'), (req, res) => { res.render("index", { message: req.body.image, date: moment().format("YYYY-MM-DD HH:mm:ssZ") }); const file = req.file const meta = req.body // デバッグのため、アップしたファイルの名前を表示する console.log(meta, file) }); module.exports = router;
view index.ejs
<!DOCTYPE html> <html> <head> <title>rekognition</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <div role="main"> <p><%= message %></p> <p><%= date %></p> <form action="/" method="post" enctype=”multipart/form-data”> <p><input type="file" name="image"> <input type="submit" value="送信"></p> </form> </div> </body> </html>
あなたの回答
tips
プレビュー