vue實現頭像上傳功能
本文實例為大傢分享瞭vue實現頭像上傳的具體代碼,供大傢參考,具體內容如下
1.創建項目,使用vue-admin-template框架
2.使用vue命令在終端(開發工具VScode)輸入npm install,即可按package.json文件下載
3.導入相關工具包,是上傳頭像的樣式更好看
4.在views編寫vue文件
<template> <div class="app-container"> <el-form-item label="講師頭像"> <el-upload :show-file-list="true" :on-success="handleAvatarSuccess" :on-error="handleAvatarError" :before-upload="beforeAvatarUpload" class="avatar-uploader" :action="BASE_API+'/eduOss/fileOss'"> <img v-if="teacher.avatar" :src="teacher.avatar"> <i v-else class="el-icon-plus avatar-uploader-icon"/> </el-upload> </el-form-item> <span style="margin-left: 8.7%;font-size: 20px; font-weight: 400;">*點擊圖片框修改頭像*</span> <br /><br /><br /> <el-form-item> <el-button :disabled="saveBtnDisabled" plain="true" type="primary" @click="saveOrUpdate">保存</el-button> </el-form-item> </el-form> </div> </template> <script> //引入上傳頭像的功能組件 import ImageCropper from '@/components/ImageCropper' import PanThumb from '@/components/PanThumb' export default { components: {ImageCropper,PanThumb}, //組件的聲明 data() { return { }, //v-model雙向綁定 imagecropperShow: false, //上傳彈框組件是否顯示 imagecropperKey: 0, //上傳組件唯一標識 BASE_API: process.env.BASE_API, //獲取dev.env.js裡面地址 saveBtnDisabled: false //保存按鈕是否禁用 } }, created() { //頁面渲染前執行 }, watch: { //vue的監聽 $route(to, from) { //路由變化方式,路由一發生變化 就執行方法 this.init() } }, methods: { // 文件上傳成功 handleAvatarSuccess(response) { if (response.success) { this.teacher.avatar = response.data.url // 強制重新渲染 this.$forceUpdate() } else { this.$message.error('上傳失敗! (非20000)') } }, // 文件上傳失敗(http) handleAvatarError() { this.$message.error('上傳失敗! (http失敗)') }, // 上傳校驗 beforeAvatarUpload(file) { const isJPG = file.type === 'image/jpeg' const isLt3M = file.size / 1024 / 1024 < 3 if (!isJPG) { this.$message.error('上傳頭像圖片隻能是 JPG 格式!') } if (!isLt3M) { this.$message.error('上傳頭像圖片大小不能超過 2MB!') } return isJPG && isLt3M }, } } </script> <style> .avatar-uploader .el-upload { border: 1px dashed #d9d9d9; border-radius: 6px; cursor: pointer; position: relative; overflow: hidden; } .avatar-uploader .el-upload:hover { border-color: #409EFF; } .avatar-uploader .avatar-uploader-icon { font-size: 28px; color: #8c939d; width: 178px; height: 178px; line-height: 178px; text-align: center; } .avatar-uploader img { width: 178px; height: 178px; display: block; } </style>
該代碼是上傳文件頭像的前端代碼的片段,樣式和上傳到頁面功能,上傳到阿裡雲服務器還需要和後端功能連接,比如添加時,後端將上傳文件的url拼成字符串保存到數據庫,在前端則要寫入相關保存功能,連接後端,並在data中寫保存的相關數據,methods中寫保存的方法等,該代碼可以在實現需要上傳頭像文件是加如個人代碼進行修改即可.
使用環境是node.js
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Element 頭像上傳的實戰
- elementui+vue+axios實現文件上傳本地服務器
- vue封裝組件之上傳圖片組件
- vue中wangEditor5編輯器的基本使用
- vue-cropper插件實現圖片截取上傳組件封裝