如何使用express+multer实现node中的图片上传功能

小编给大家分享一下如何使用express+multer实现node中的图片上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体内容介绍如下所示:

在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中

在node中使用multer中间件来对上传路由接口进行处理

multer文档

package.json

html部分





提交

js部分


NodeJS逻辑代码

consthttp=require('http')
constpath=require('path')
constexpress=require('express')
//是nodejs中处理multipart/form-data数据格式(主要用在上传功能中)的中间件
//文档:https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.md
constmulter=require('multer')
constapp=express()
//配置express的静态目录
app.use(express.static(path.join(__dirname,'public')));
app.get('/',(req,res)=>{
res.sendFile(__dirname+'/index.html')
})
//配置diskStorage来控制文件存储的位置以及文件名字等
varstorage=multer.diskStorage({
//确定图片存储的位置
destination:function(req,file,cb){
cb(null,'./public/uploadImgs')
},
![](http://images2017.cnblogs.com/blog/1283058/201802/1283058-20180201154342296-515041615.png)
//确定图片存储时的名字,注意,如果使用原名,可能会造成再次上传同一张图片的时候的冲突
filename:function(req,file,cb){
cb(null,Date.now()+file.originalname)
}
});
//生成的专门处理上传的一个工具,可以传入storage、limits等配置
varupload=multer({storage:storage});
//接收上传图片请求的接口
app.post('/upload',upload.single('file'),function(req,res,next){
//图片已经被放入到服务器里,且req也已经被upload中间件给处理好了(加上了file等信息)
//线上的也就是服务器中的图片的绝对地址
varurl='/uploadImgs/'+req.file.filename
res.json({
code:200,
data:url
})
});
http.createServer(app).listen(3000,()=>{
console.log('serverislistening')
})

自我感觉良好,不知道博客园为什么要给我移除首页....

再发一次,if(delete){
alert('Neverpublishanythingagain.')
}else{
alert(1)
}

看完了这篇文章,相信你对“如何使用express+multer实现node中的图片上传功能”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-07-09 21:18:14
分享
海报
173
上一篇:CSS中如何使用伪类 下一篇:vue中有哪些常用的跨域处理方式
目录

    忘记密码?

    图形验证码