vue项目中实现头像上传(axios请求)

本文详细介绍在Vue项目中如何实现用户头像的上传与更换功能。通过HTML、CSS和JavaScript代码片段,展示了如何使用input file元素触发文件选择,如何通过FormData对象封装图片数据,并通过axios或Vue-resource发送POST请求到后端接口。此外,还介绍了如何处理响应结果,包括成功上传后的状态提示和错误反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue项目中做个人资料时需要实现用户头像的更换

html部分

<template>  
  <div class="dataLeft">
	<p class="pic" style="width: 106px">
       <img :src="this.$picUrl+userInor.pic" alt="">//src部分是从后端获取的图像,再次不在赘述
    </p>
    <p class="upload">上传头像
	<input type="file" @change="upDataPic" enctype="" accept="image/*" class="uploadBtn"/>
    </p>
   </div>
</template>

css部分

<style>
.pic{
		width:106px;
		height:106px;
		overflow: hidden;
		border-radius:50%;
		background:white;
	}
.pic img{
		width: 100%;
		height: 100%;
	}
.upload{
		font-size:12px;
		text-align: center;
		line-height: 36px;
	}
</style>

js部分

<script>
upDataPic(e){								
	let file = e.target.files[0];  
	var picData=new FormData();
	picData.append('file',file,file.name);
	// console.log(picData)
	this.$http({
		url:"接口url",
		method:'post',
		data:picData,
	})
	.then(response=>{
		if(response.data.success==true){
			this.$swal.fire({//swal是引用的弹框插件,如需要,可百度查找
			    text:'上传成功',
				icon:'success'
			})
			this.userIcon=response.data.filePath;
			this.getInfor();
		}else{
			this.$swal.fire({//swal是引用的弹框插件,如需要,可百度查找
				text:res.data.msg
			})
		}
	})
	.catch(Error=>{
					
	})
}
</script>

 

Vue2项目中,结合Vant UI库和axios进行文件上传,包括头像和文件,可以按照以下步骤操作: 1. 安装依赖:首先需要安装`vant`组件库和用于处理文件上传的`axios`插件,可以在命令行中运行: ```bash npm install vant axios ``` 2. 引入模块:在需要使用的地方,引入`vant`的`ImagePicker`和`Axios`模块: ```javascript import { ImagePicker } from 'vant'; import axios from 'axios'; ``` 3. 使用`ImagePicker`选择图片:创建一个方法来触发用户选择头像: ```javascript methods: { selectAvatar() { ImagePicker.show({ type: 'image', // 图片选择 allowEdit: true, // 允许编辑图片 success(res) { const file = res.file; this.uploadAvatar(file); } }); }, uploadAvatar(file) { // 这里添加文件头信息,如base64编码、Content-Type等 const formData = new FormData(); formData.append('avatar', file); axios.post('/api/upload-avatar', formData, { headers: { 'Content-Type': 'multipart/form-data' } }).then(response => { console.log(response.data); // 处理服务器返回的数据 }).catch(error => { console.error('上传失败:', error); }); } } ``` 4. 发送文件请求:在`uploadAvatar`方法中,通过axios发送POST请求到服务器的`/api/upload-avatar`端点,并将文件作为FormData的一部分传递。 注意: - `Content-Type`设置为'multipart/form-data'是因为这是文件上传的标准格式。 - 根据实际需求,可能还需要对文件进行预处理(例如压缩),并适当地处理服务器响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值