<input type="file" name ref="ipt" @change="uploading" accept="image/png" id />
//this.url就是你当前的图片,可以进行展示
uploading() {
var rd = new FileReader();
//this.$refs.ipt.files[0]上传服务器的时候,一般传递的就是这个
rd.readAsDataURL(this.$refs.ipt.files[0]);
let that = this;
rd.onloadend = function () {
that.url = this.result;
};
},
//上面是将本地图片改编成成base64图片
//第一个参数是地址,第二个参数是名称
downloadFile(content, fileName) {
//下载base64图片
var base64ToBlob = function (code) {
let parts = code.split(";base64,");
let contentType = parts[0].split(":")[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {
type: contentType,
});
};
let aLink = document.createElement("a");
let blob = base64ToBlob(content); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true); //initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.click();
},
//上面是将base64图片下载到本地