您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/8/12 14:43:50发布89次查看
在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中,在node中使用multer中间件来对上传路由接口进行处理。本文主要和大家介绍使用express+multer实现node中的图片上传功能,需要的朋友可以参考下,希望能帮助到大家。
multer文档
package.json
html部分
<body> <p class="form-group">     <label>file input:</label>     <input type="file" name="file" id="file">     <p id="result"></p>     <img id="img" src="">   </p>   <button id="upload" class="btn btn-default">提交</button>   </body>
js部分
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>   <script>     //上传图片的业务逻辑函数     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();     } </script>
nodejs逻辑代码
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.md const 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') })
自我感觉良好,不知道博客园为什么要给我移除首页....
再发一次,if(delete){ alert('never publish anything again.') }else{ alert(1) }
相关推荐:
kindeditor编辑器添加图片上传水印实现方法
thinkphp5.0实现图片上传插件实例分享
php实现微信小程序图片上传实例代码分享
以上就是express、multer实现node中图片上传功能的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product