express、multer实现node中图片上传功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了express、multer实现node中图片上传功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3186字,纯文字阅读大概需要5分钟。
内容图文
![express、multer实现node中图片上传功能](/upload/InfoBanner/zyjiaocheng/296/da79e7c7ec004aaeb5a08b6c584ddb71.jpg)
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中图片上传功能的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的express、multer实现node中图片上传功能全部内容,希望文章能够帮你解决express、multer实现node中图片上传功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。