2017-10-16 15 views
0

私はpdf/docファイルのアップロードが必要な簡単なソフトウェア大学のプロジェクトを開発しています。しかし、ここではボトルネックがあります。Sequelize ORMを使用して、この機能の例とサンプルを見つけることができませんでした。sequelize + mysql + express jsを使ってファイルをアップロードする方法は?

このフレームワークを使用している人は誰ですか?

*ところで、私はexpress()のnpmパッケージがいくつかあることを知っていますが、私は続ける必要があります。

アドバイスをよろしくお願いいたします。事前に

感謝;)

答えて

0

multerを使用して明示アプリを設定します。 multerのドキュメントを超える読みますが、要するに、あなたは、アップロードされたファイルのパスを格納します。

const multer = require('multer') 
const express = require('express') 
const Sequelize = require('sequelize') 
const sequelize = new Sequelize('database', 'username', 'password') 

const MyModel = sequelize.define('myModel', { 
    filePath: Sequelize.STRING, 
}) 

const express = express() 

const storage = multer.diskStorage({ 
    destination: (req, file, cb) => { 
    cb(null, './app/uploads') 
    }, 
    filename: (req, file, cb) => { 
    cb(null, file.originalname) 
    } 
}) 

app.post('/upload', multer({ storage }).single('example), async (req, res) => { 
    // This needs to be done elsewhere. For this example we do it here. 
    await sequelize.sync() 

    const filePath = `${req.file.destination}/${req.file.filename}` 

    const myModel = await MyModel.create({ filePath }) 
}) 
0

Aやや単純例(from)AJAXを使用します。あなたのNode.js

var multer = require('multer'); 

const storage = multer.diskStorage({ 
    destination: (req, file, callback) => { 
     console.log(req); 
     callback(null, './uploads'); 
    }, 
    filename: (req, file, callback) => { 
     console.log(req); 
     callback(null, Date.now() + file.originalname); 
    } 
}); 

var upload = multer({storage:storage}).single('myFile'); 

app.post('/dashboard/myFile', function(req,res){ 
     upload(req,res,function(err){ 
      //console.log("owen",req.file,err); 
      if (err) 
       return res.end("error uploading file"); 
      res.end("file is uploaded"); 
     }); 
}); 

そして、あなたのHTML内に

追加

<form id="myForm" name="myForm" enctype="multipart/form-data" method="post"> 
    <input id="myFile" name="myFile" type="file"> 
    <button type="submit" class="btn btn-primary">Submit</button> 
</form> 


<script> 

var form = document.forms.namedItem("myForm"); 

form.addEventListener('submit', function(ev){ 
    var myFile = document.getElementById('myFile').files[0]; 
    var oData = new FormData(form); 
    var oReq = new XMLHttpRequest(); 
    oReq.open("POST","/uploadFile",true); 
    oReq.onload = function(oEvent){ 
     if(oReq.status == 200) { 
      console.log("success",oEvent); 
     } else { 
      console.log("fail",oEvent); 
     } 
    } 
    oReq.send(oData); 
    ev.preventDefault(); 
},false); 

</script> 
関連する問題