vueでアイコンをアップロードする方法と実現?
1.まず、アップロードに関する要求(1)フォーマット要求(jpg|png|jpeg|gif)(2)サイズ要求(例えば300 kbを超えない)(3)サイズ制限(1:1,4:9,9:16)(4)カット可能か(5)枚か複数枚(一般的に使用者の顔に使用)
2.html部分
3.css部
4.js部分
2.html部分
<template>
<div class="hello">
<div class="user-header">
<input type="file" name="image" accept="image/*" @change='onchangeImgFun'
class="header-upload-btn user-header-com">
<img alt="" :src='imgStr' class="user-header-img user-header-com">
<p class="tip"> 50kb <span class="error">{
{errorStr}}span>p>
div>
div>
template>
3.css部
4.js部分
export default {
name: 'HelloWorld',
data () {
return {
imgStr: require('../assets/upload.png'),
errorStr: ''
}
},
methods: {
onchangeImgFun (e) {
var file = e.target.files[0]
console.log(file)
// ,
let imgSize = file.size
console.log(imgSize)
var _this = this // this ,
// 5M , b
if (imgSize <= 50 * 1024) {
//
_this.errorStr = ''
console.log(' ')
//
// 1
// this.imgStr = window.URL.createObjectURL(e.target.files[0])
// console.log(window.URL.createObjectURL(e.target.files[0])) //
//base64 2
var reader = new FileReader()
reader.readAsDataURL(file) // base64
reader.onloadend = function () {
// base64 , img src
var dataURL = reader.result
console.log(dataURL)
_this.imgStr = dataURL
//
}
} else {
console.log(' ')
_this.errorStr = ' '
}
}
}
}