利用upload上传头像

在页面中利用element-plus的upload上传头像

<el-upload class="avatar-uploader" :show-file-list="false" 
        :on-success="handleAvatarSuccess"
        :before-upload="beforeAvatarUpload" action="">
    <img v-if="formData.avatar" :src="formData.avatar" class="avatar" />
    <el-icon v-else class="avatar-uploader-icon">
        <svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"
            data-v-ea893728="">
            <path fill="currentColor"
              d="M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64h352z">
             </path>
         </svg>
    </el-icon>
</el-upload>

在点击确定之后在保存信息时,提交头像

const handleAvatarSuccess: UploadProps["onSuccess"] = (
  response: any,
  uploadFile: any
) => {
  // formData.avatar = URL.createObjectURL(uploadFile.raw!);
};

const beforeAvatarUpload: UploadProps["beforeUpload"] = (rawFile: any) => {
  if (
    rawFile.type !== "image/jpeg" &&
    rawFile.type !== "image/webp" &&
    rawFile.type !== "image/png"
  ) {
    ElMessage.error("选择文件应为jpg/png格式!");
    return false;
  } else if (rawFile.size / 1024 / 1024 > 2) {
    ElMessage.error("文件最大为2M!");
    return false;
  }

  formData.avatar = URL.createObjectURL(rawFile);
  avrtarFile.value = rawFile


  return false;
};


// 提交代码时的操作,问文件类型转换类blob
const avatarD = new FormData()
    avatarD.append("file", avrtarFile.value)
    api.editUserAvatar(avatarD).then((res: any) => {
      console.log(res);
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于头像上传,你可以使用 Element UI 提供的 `el-upload` 组件来实现。下面是一个简单的示例代码: ```html <template> <el-upload class="avatar-uploader" action="/upload" <!--设置上传的地址--> :show-file-list="false" <!--隐藏上传成功后的文件列表--> :on-success="handleSuccess" <!--上传成功后的回调函数--> :before-upload="beforeUpload" <!--文件上传前的校验函数--> > <!-- 上传按钮 --> <img v-if="imageUrl" :src="imageUrl" class="avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </template> <script> export default { data() { return { imageUrl: '', // 文件上传成功后的地址 }; }, methods: { handleSuccess(response) { this.imageUrl = response.url; // 保存上传成功后的图片地址 }, beforeUpload(file) { // 在这里可以进行文件大小、格式等的校验 const isJPG = file.type === 'image/jpeg'; const isLt2M = file.size / 1024 / 1024 < 2; if (!isJPG) { this.$message.error('上传头像图片只能是 JPG 格式!'); } if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!'); } return isJPG && isLt2M; }, }, }; </script> <style scoped> .avatar-uploader { display: flex; justify-content: center; align-items: center; width: 120px; height: 120px; border: 1px dashed #d9d9d9; border-radius: 50%; overflow: hidden; } .avatar-uploader-icon { font-size: 28px; color: #8c939d; cursor: pointer; } .avatar { width: 100%; height: 100%; object-fit: cover; } </style> ``` 上述代码,`el-upload` 组件用于实现文件上传功能。你需要根据实际情况设置 `action` 属性,即文件上传的地址。`handleSuccess` 方法用于处理上传成功后的回调,你可以在其保存上传成功后的图片地址。`beforeUpload` 方法用于在文件上传前进行校验,你可以在其进行文件大小、格式等的验证,并返回 `true` 或 `false` 表示是否允许上传。 另外,你还需要根据自己的需求进行样式调整,上述代码给出了一个简单的样式示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值