vue实现的上传图片到数据库并显示到页面功能示例
前端之家收集整理的这篇文章主要介绍了
vue实现的上传图片到数据库并显示到页面功能示例,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了vue实现的上传图片到数据库并显示到页面功能。分享给大家供大家参考,具体如下:
1、点击上传图片,弹出选择图片选项框。
页面代码:
由于我们要设置上传图片的样式,所以把input隐藏,并要做如下操作把input的点击事件给div框:
2、在api接口的controller层加入两个文件,命名自己定,如:
upFile.js
上传后
文件路径,uploads
文件夹会
自动创建。
destination: function (req,file,cb) {
cb(null,'./public/uploads')
},//给
上传文件重命名,
获取添加后缀名
filename: function (req,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
名称必须是表单
上传字段的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、在页面中将图片的地址存到数据库
添加数据
//利用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("
文件格式
不支持上传");
}
}
希望本文所述对大家vue.js程序设计有所帮助。