实现 vue点击图片上传 预览图片

实现 vue 点击图片上传 预览图片

模板部分

<div>
	<img :src="img" @click="onclickImg" style="width: 100px;height: 100px;" title="点击上传">
	<input type="file" ref="file" @change="preview" accept="image/*" style="display: none">
</div>

script部分

data(){
	return{
	  img:''
	}
},
methods:{
	//点击图片唤起本地文件夹
	onclickImg:function () {
		this.$refs.file.click()
	},
	//预览图片
	preview:function (e) {
		let _this = this;
		let file = e.target.files[0]
		if(!file){
			return
		}
		var reader = new FileReader()
		reader.readAsDataURL(e.target.files[0])
		reader.onloadend = function () {
			_this.img = this.result
		}
	},
	//上传图片
	uploadImg:function () {
		let url = '/upload'
		let file = this.$refs.file.files[0];
		if(!file){
		  return
		}
		let format = new FormData()
		format.append('file',file)
		this.$axios.post(url,format).then(response=>{
		 	//上传后逻辑
		})
	}
},

相关功能:重新渲染组件 使用key
模板部分

<Header :key="headerKey"/>

script部分

data(){
	return{
		headerKey:0
	}
},
methods:{
	//修改key则重新渲染组件
	reload:function(){
		this.headerKey += 1
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值