今天做个可以直接上传jar包到服务器的接口,废话不多说上代码
前端代码
<!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>
后端js,这里用了express和multer框架
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('文件上传中间件')
})