初めまして。
Node.jsを用いてブラウザからアップロードしたファイルをプロジェクトファイルに保存するウェブアプリケーションの作成をしたいと考えております。
multerとfsを利用し、ローカル環境でのテストは無事成功したのですがHeorkuにアップロードしたところ動きませんでした。
なぜかと調べてみるとどうやらherokuでファイルアップロードするのはよくないようです。(できるけど一時ファイルの作成のみ)
そこでいろいろと調べていたところAWS S3というサービスを利用するといいと聞いたので調べてみたのですが出てくる情報がAWS S3のストレージ(?)にアップロードするというものばかりでした。
どうしてもプロジェクトファイルに保存しなければいけないのですが、AWS S3を用いてやる場合どういう風に作成すればいいのでしょうか。
何か参考になるサイトや方法をご存じの方いましたらご教授お願いいたします。
以下コードです。
app.js(抜粋)
1const storage = multer.diskStorage({ 2 destination: function (req, file, cb) { 3 cb(null, "./tmp") 4 }, 5 filename: function (req, file, cb) { 6 cb(null, file.originalname) 7 } 8}) 9 10const upload = multer({ storage: storage }) 11 12app.use(express.static(path.join(__dirname,))); 13 14app.get('/upload1', (req, res) =>{ 15 res.render('upload1.ejs'); 16}); 17 18app.post('/upload', upload.single('file'), function (req, res, next) { 19 res.send('ファイルのアップロードが完了しました。'); 20 })
upload1.ejs
1<!DOCTYPE html> 2<html lang="ja"></html> 3<head> 4 <meta charset="UTF-8"> 5 <title>Express.js File Upload</title> 6</head> 7<body> 8 <h1>ファイルアップロード</h1> 9 <form action="/upload" method="POST" enctype="multipart/form-data"> 10 <input type="file" name="file"> 11 <button type="submit">送信</button> 12 </form> 13</body> 14</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。