首页

  • 首页
  • 友链
  • 标签
  • 关于

node文件上传

白羊座的梦 发布于 2019-08-19

node文件上传

express框架文件上传的方法

通过formidabel模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//引入上传模块
const formidable = require("formidable");

const {join} = require("path")

const path = require("path");
const fs = require("fs");
const app =express;
app.post("/fils",(req,res)=>{
let form =new formidable.IncomingFrom();
//文件上传保存的路径;
form.uploadDir = join(__dirname,"/upload");
form.parse(req,(err,fields,files)=>{
//err 有没有报错
//fields 字符post请求的数据
//files 其他文件的数据比如视频,图片;

//通过path模块读取文件后缀名;
let extname = path.extname(files.shipin.name)
//拿到视频的名字,也可以自定义名字
let shiponPath = files.shipin.path;

//通过fs模块吧老的名字改为新的名字带有后缀的;
fs.rename(shiponPath,shiponPath+extname,()=>{
res.send("ok")
})


})
})
app.listen(3000)

koa框架文件上传的方法

通过koa-multer模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//koa-multer上传文件的方法;
const Koa = require("koa");
const Router = require("koa-router")
const multer = require("koa-multer")
const {join} = require("path")
const app = new Koa;
const router = new Router;
console.log(__dirname)
const storage = multer.diskStorage({
//文件存储的路径
destination:join(__dirname,"upload"),
//文件名
filename(req,file,cb){
const filename = file.originalname.split(".")
//定义文件吗不重复;
cb(null,`${Date.now()}.${filename[filename.length-1]}`)
}
})
const upload =multer({storage})

//必须到经过upload.single("file")处理才能到下一个中间件
//其中upload.single("file")的file是input的name值;
router.post("/fileipload",upload.single("file"),async cyx=>{
ctx.body ={
filename:cyx.req.file.filname
}
})

app.use(router.routes(join()))//给koa设置路由
.use(router.allowedMethods())
.listen(3000)
  • #node
Newer
redux的初识见解
Older
less语法

© 2020 白羊座的梦

Powered by Hexo Theme - flex-block