express、multer实现node中图片上传功能

在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中,在node中使用multer中间件来对上传路由接口进行处理。本文主要和大家介绍使用express+multer实现node中的图片上传功能,需要的朋友可以参考下,希望能帮助到大家。

multer文档

package.json

express、multer实现node中图片上传功能

html部分

  1. express、multer实现node中图片上传功能

登录后复制

js部分

  1. //上传图片的业务逻辑函数 function uploadFile(){ //上传图片的input var file = document.getElementById("file") //因为准备用post提交,又因为图片的内容比较大,所以我们选择使用formdata来承载数据 //创建formdata对象 var formData = new FormData(); //给formdata对象中放入数据(键值对的方式) formData.append('file',file.files[0]); //提交请求 $.ajax({ url: '/upload',//请求路径 type: 'POST', data: formData, contentType: false,//为了让浏览器根据传入的formdata来判断contentType processData: false,//同上 success: function(data){ if(200 === data.code) { $('#result').html("上传成功!"); $('#img').attr('src',data.data); } else { $('#result').html("上传失败!"); } console.log(2) }, error: function(){ $("#result").html("与服务器通信发生错误"); } }); console.log(1) } //给按钮添加点击事件 function postPage() { //上传按钮 var uploada = document.getElementById('upload'); uploada.addEventListener("click",function () { uploadFile(); },false); } window.onload = function () { postPage(); }

登录后复制

NodeJS逻辑代码

  1. const http = require('http')const path = require('path')const express = require('express')//是nodejs中处理multipart/form-data数据格式(主要用在上传功能中)的中间件//文档:https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.mdconst multer = require('multer')const app = express()//配置express的静态目录app.use(express.static(path.join(__dirname, 'public')));app.get('/',(req,res)=>{ res.sendFile(__dirname+'/index.html')})//配置diskStorage来控制文件存储的位置以及文件名字等var storage = 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等配置var upload = multer({storage: storage});//接收上传图片请求的接口app.post('/upload', upload.single('file'), function (req, res, next) { //图片已经被放入到服务器里,且req也已经被upload中间件给处理好了(加上了file等信息) //线上的也就是服务器中的图片的绝对地址 var url = '/uploadImgs/' + req.file.filename res.json({ code : 200, data : url })});http.createServer(app).listen(3000,()=>{ console.log('server is listening')})

登录后复制

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

  1. 再发一次,if(delete){alert('Never publish anything again.')}else{alert(1)}

登录后复制

相关推荐:

Kindeditor编辑器添加图片上传水印实现方法

ThinkPHP5.0实现图片上传插件实例分享

PHP实现微信小程序图片上传实例代码分享

以上就是express、multer实现node中图片上传功能的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
编程技术

webpack打包koa2框架app实例详解

2025-3-8 18:14:40

编程技术

JS中的BOM应用详解

2025-3-8 18:14:49

0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索