input file 上传图片并显示
<template>
<div class="about">
<h1>This is an about page</h1>
<input type="file" value="上传图片" class="upload" @change="handleFileChange" ref="inputer" multiple accept="image/png,image/jpeg,image/gif,image/jpg"/>
<img v-for="item of filelists" :src="item" :key="item" alt="">
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
@Component({
})
export default class About extends Vue {
filelists = [];
handleFileChange(e:any){
let file = e.target.files;
let _this = this;
for(let i in [...Array(file.length).keys()]){
let reader = new FileReader();
reader.readAsDataURL(file[i]); // 读出 base64
reader.onloadend = function () {
_this.filelists.push(reader.result);
};
}
}
}
</script>
File对象继承自Blob对象,也就是说Blob对象的属性和方法,File对象也可以使用,而File对象本身也有自己的属性和方法。
lastModified属性,返回File对象引用文件最后的修改时间。
lastModifiedDate属性,引用文件最后修改时间的Date对象。
name属性,所引用文件的名字。
size属性,返回文件大小。
webkitRelativePath属性,相关的Path或URL。
type属性,返回文件的多用途互联网邮件扩展类型。
File的方法。
geAsBinary()把文件内容按照二进制形式解析成字符串并返回
Valid Accept Types: For CSV files (.csv), use: <input type="file" accept=".csv" /> For Excel Files 2003-2007 (.xls), use: <input type="file" accept="application/vnd.ms-excel" /> For Excel Files 2010 (.xlsx), use: <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> For Text Files (.txt) use: <input type="file" accept="text/plain" /> For Image Files (.png/.jpg/etc), use: <input type="file" accept="image/*" /> For HTML Files (.htm,.html), use: <input type="file" accept="text/html" /> For Video Files (.avi, .mpg, .mpeg, .mp4), use: <input type="file" accept="video/*" /> For Audio Files (.mp3, .wav, etc), use: <input type="file" accept="audio/*" /> For PDF Files, use: <input type="file" accept=".pdf" />

浙公网安备 33010602011771号