Node.jsの更新による複数画像の投稿について詰まったところ
今回は既にinsert済みのshopテーブルにてnullで指定していた画像を投稿するカラムの更新について詰まった点を記述する
使用コードは2点
formタグを使用してpost処理を実行する
myprofileEdit.ejs
postを受け取りupdate文を実行する
myprofile_img.js
コードは以下
myprofileEdit.ejs
<h2>画像情報編集</h2>
<form action="/myprofile_img" method="post" enctype="multipart/form-data">
プロフィール写真の変更<input type="file" name="account_img"><br>
</form>
<form action="/myprofile_img2" method="post" enctype="multipart/form-data">
店舗詳細写真の変更 <input type="file" name="shop_img"><br>
</form>
<form action="/myprofile_img3" method="post" enctype="multipart/form-data">
店舗画像1<input type="file" name="img1"><br>
</form>
<form action="/myprofile_img4" method="post" enctype="multipart/form-data">
店舗画像2<input type="file" name="img2"><br>
</form>
(上記コードは画像投稿に使用しているform部分を抜粋)
上記では4つの画像投稿をするため処理を行うjsファイルを4つ用意しそれぞれのjsファイルで処理を実行している
myprofile_img.js
router.post('/', upload.single('account_img'), function (req, res, next) {
console.log(req.file);
console.log(req.file.filename);
var userId = req.session.user_id? req.session.user_id: 0;
res.redirect('/myprofile')
})
})
(上記コードはpostされた値を処理する部分を抜粋)
内容としては
upload.single('account_img'),
部分のaccount_imgのところがmyprofileEdit.ejsのformタグ内inputタグの
input type="file" name="account_img"><br>
上記name部分で指定した内容を記述することになっている。
参考:https://reffect.co.jp/node-js/express-js-file-upload
(1.4 ルーティングの設定参照)
試したこと
upload.single('account_img',shop_img'),
上記のようにshop_imgを追加し
のようにupdate文にもshop_imgを追加してみた
しかしこれはエラーとなり実行不可
そのため、上述のコードのようにformタグを4つとそれに対応するjsファイルを4つ使用して更新処理が出来るようにいったん実装をした。
1つのformタグで4つの画像を更新する方法はあるのだろうか、、検証は続く