vue上传图片到数据库并显示到页面

来源:互联网 发布:sor文件打开软件 编辑:程序博客网 时间:2024/05/22 03:09
1、点击上传图片,弹出选择图片选项框。
    页面代码:
<div class="form-signin-heading" id="btnUpload" @change="upload">上传图片</div><input type="file" name="avatar" id="avatar" multiple="multiple" @change="upload">
<img :src="'http://localhost:8888'+item.photos_url"  alt=""/>

由于我们要设置上传图片的样式,所以把input隐藏,并要做如下操作把input的点击事件给div框:

mounted: function () {  var upload = document.getElementById("btnUpload");  var avatar = document.getElementById("avatar");  upload.onclick =function(){    avatar.click(); //注意IE的兼容性  };}
2、在api接口的controller层加入两个文件,命名自己定,如:

upFile.js
let  multer=require('multer');let storage = multer.diskStorage({    //设置上传后文件路径,uploads文件夹会自动创建。    destination: function (req, file, cb) {        cb(null, './public/uploads')    },    //给上传文件重命名,获取添加后缀名    filename: function (req, file, cb) {        let fileFormat = (file.originalname).split(".");        cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);    }});//添加配置文件到multer对象。let upload = multer({    storage: storage});
module.exports = upload;
upFileController.js
var muilter = require('./upFile.js');//multersingle()中的名称必须是表单上传字段的name名称。var upload=muilter.single('file');function dataInput(req, res) {    upload(req, res, function (err) {        //添加错误处理        if (err) {            return  console.log(err);        }        //文件信息在req.file或者req.files中显示。        let photoPath = req.file.path;        photoPath = photoPath.replace(/public/,"");//将文件路径中的public\去掉,否则会和静态资源配置冲突        //photoPath存入数据库即可        console.log(photoPath);        res.send(photoPath);    });}module.exports = {    dataInput};
3、在页面中将图片的地址存到数据库
upload: function (e) {        var that = this;        let formData = new window.FormData();        let file = e.target.files[0];        formData.append('file',file);//通过appendform对象添加数据        //利用split切割,拿到上传文件的格式        var src = file.name,          formart = src.split(".")[1];        //使用if判断上传文件格式是否符合        if (formart == "jpg" || formart == "png" ||          formart == "docx" || formart == "txt" ||          formart == "ppt" || formart == "xlsx" ||          formart == "zip" || formart == "rar" ||          formart == "doc") {          //只有满足以上格式时,才会触发ajax请求          this.$axios.post(this.$api.personalCenter.upFile,formData).then(function (res) {            that.upFileData = res.data;          }).then(function (res) {            var params = {              photos_url: that.upFileData,              photo_des: ''            };//            console.log(params.photos_url,'photos_url')            that.$axios.post(that.$api.personalCenter.wallAdd,qs.stringify(params)).then(function (res) {              console.log(res.data);              that.$options.methods.imgList.bind(that)();            }).catch(function (err) {              console.log(err);              console.log("请求出错");            })          })        } else {          alert("文件格式不支持上传");        }      }



阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 重庆温度 温度英文 今天温度 冰箱调温度 科技温度 腋下温度 哈尔滨温度 西安温度 今日温度 口腔温度 长沙温度 温度的定义 温度变化 测量温度 温度器 中心温度 太阳的温度 什么叫温度 测温度 温度是什么 温度检测器 温度测量 温度记录仪 蒸汽温度 温度探头 温度单位k 环境温度 冷冻温度 手机温度 云南的温度 温度探测器 有效温度 温度转换 实时温度 遗憾的温度 上海的温度 冷藏库温度 丽江的温度 摄氏温度 温度测试 温度控制