nodejs upload files to linux server

Today, make an interface that can directly upload the jar package to the server, let’s not talk nonsense about the code

front-end code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
    <!-- 上传文件 -->
    <form method='post', action='http://10.0.0.203:6902/upload', enctype='multipart/form-data'>
        <input type="file" name="avatar">
        <!-- 注意这里的name需要跟后端的avatar配置一样 -->
        <input type="submit" value="上传">
    </form>
</body>
</html>

Backend js, express and multer frameworks are used here

const express = require('express')
const multer = require('multer')
const app = express()
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './uploads')
  },
  filename: function (req, file, cb) {
    // const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
    // const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9)
    // cb(null, file.fieldname + '-' + uniqueSuffix)
    cb(null, file.originalname)
    //这里我是直接使用上传的文件名,可以自定义也可以用上面生成的随机时间来命名
  }
})

const upload = multer({ storage: storage })
// app.use(express.json())
// app.use(express.urlencoded({extended: true}))
// app.use(upload.arra())
// app.post('/login', (req, res, next) => {
//   console.log(req.body)
//   res.end('login server')
// })
app.post('/upload', upload.array('avatar'), (req, res, next) => {
//这里的参数要跟前端的参数一致
  console.log(req.files)
  res.end('文件上传成功')
})
app.listen(8088, () => {
  console.log('文件上传中间件')
})

Guess you like

Origin blog.csdn.net/leonnew/article/details/125224166