1. 程式人生 > 實用技巧 >express-上傳檔案

express-上傳檔案

話不多說 直接看程式碼

var fs=require('fs')

var multer  = require('multer')

var createFolder=function(folder){ //建立資料夾的方法
  try{
    fs.accessSync(folder)
  }catch(e){
    fs.mkdirSync(folder)
  }
}
var uploadFolder='./upload/'
createFolder(uploadFolder)

var storage = multer.diskStorage({
  destination: function
(req, file, cb) {//存放的資料夾 cb(null, uploadFolder) }, filename: function (req, file, cb) { console.log(file.originalname,'cc') cb(null, file.fieldname + '-' + Date.now()) //存放的名字 } }) var upload = multer({ storage:storage })

//上傳檔案的介面 app.post('/upload',upload.single('logo'),function(req,res){ console.log(req.file)//原檔案的名字originalname res.send({'ret_coder':0}) })

上傳畫面

form.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <form action="/upload" method="post" enctype="multipart/form-data">
    <h2>單圖上傳</h2>
    <input type="file" name="logo">
    <input type="submit" value="提交">
  </form>
</body>
</html>

進入上傳畫面的介面

//檔案上傳頁面
app.get('/form',function(req,res){
  var form=fs.readFileSync('./form.html',{encoding:"utf8"})
  res.send(form)
})