js批量上传文件特效代码
网站建设 2022-07-27 08:02www.1681989.com免费网站
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊。不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是自己想要的,可实现删除,图片预览,文件批量上传,显示文件大小等功能。 script src = js/vue.m.js /script div id = app div class = hello div class = upload div class = upload_warp div class = […]
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊。不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是自己想要的,可实现删除,图片预览,文件批量上传,显示文件大小等功能。
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊。不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是自己想要的,可实现删除,图片预览,文件批量上传,显示文件大小等功能。
-
<script src="js/vue.m.js"></script>
-
<div id="app">
-
<div class="hello">
-
<div class="upload">
-
<div class="upload_warp">
-
<div class="upload_warp_left" @click="fileClick">
-
<img src="img/upload.png">
-
</div>
-
<div class="upload_warp_right" @drop="drop($event)" @dragenter="dragenter($event)" @dragover="dragover($event)">
-
或者将文件拖到此处
-
</div>
-
</div>
-
<div class="upload_warp_text">
-
选中{{imgList.length}}个文件,共{{bytesToSize(this.size)}}
-
<span class="ml20 c-red">[单个附件的最大尺寸为10MB]</span>
-
</div>
-
<put @change="fileChange($event)" type="file" id="upload_file" multiple style="display: none">
-
<div class="upload_warp_img" v-show="imgList.length!=0">
-
<div class="upload_warp_img_div" v-for="(item,dex) of imgList">
-
<div class="upload_warp_img_div_">
-
<div class="upload_warp_img_div_text">
-
{{item.file.name}}
-
</div>
-
<img src="img/del.png" class="upload_warp_img_div_del" @click="fileDel(dex)">
-
</div>
-
<img :src="item.file.src">
-
</div>
-
</div>
-
</div>
-
</div>
-
</div>
-
<script>
-
var app = new Vue({
-
el: '#app',
-
data () {
-
return {
-
imgList: [],
-
size: 0
-
}
-
},
-
methods: {
-
fileClick(){
-
document.getElementById('upload_file').click()
-
},
-
fileChange(el){
-
if (!el.target.files[0].size) return;
-
this.fileList(el.target.files);
-
el.target.value = ''
-
},
-
fileList(files){
-
for (let i = 0; i < files.length; i++) {
-
this.fileAdd(files[i]);
-
}
-
},
-
fileAdd(file){
-
this.size = this.size + file.size;//总大小
-
let reader = new FileReader();
-
reader.vue = this;
-
reader.readAsDataURL(file);
-
reader.onload = function () {
-
file.src = this.result;
-
this.vue.imgList.push({
-
file
-
});
-
}
-
},
-
fileDel(dex){
-
this.size = this.size - this.imgList[dex].file.size;//总大小
-
this.imgList.splice(dex, 1);
-
},
-
bytesToSize(bytes){
-
if (bytes === 0) return '0 B';
-
let k = 1000, // or 1024
-
sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
-
i = Math.floor(Math.log(bytes) / Math.log(k));
-
return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
-
},
-
dragenter(el){
-
el.sPropagation();
-
el.preventDefault();
-
},
-
dragover(el){
-
el.sPropagation();
-
el.preventDefault();
-
},
-
drop(el){
-
el.sPropagation();
-
el.preventDefault();
-
this.fileList(el.dataTransfer.files);
-
}
-
}
-
})
-
</script>
-
<div style="text-align:center;marg:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">
-
</div>
上一篇:
织梦取消数据表字段大小写限制
下一篇:没有该栏目数据, 可能缓存文件请检查是否有
网站设计
- 静宁会SEO的网站建设公司:全面提升您的网络影
- 提升在线业务的关键:选择最佳的丽水网站建设
- 浙江网站优化发展潜力如何
- 井研专业的网站建设公司:打造您的在线品牌
- 灵山SEO网站建设公司:提升您的在线业务表现
- 蒙城网站建设优化公司:提升您网站表现的理想
- 阳谷企业网站优化:提升线上业务力的关键
- 樟树专业的网站建设公司:打造您在线业务的坚
- 通河百度SEO排名的策略与技巧
- 重庆百度快照排名如何进行精准的客户引流
- 重庆百度快照排名
- 常宁便宜的建站公司:助您轻松打造在线业务
- 巫溪百度网站优化:提升网站曝光率与流量的关
- 湖北整站优化怎么做才能放大客户需求
- 闸北网站建设多少钱?全面解析与预算规划
- 辽宁企业网站优化怎么做电话营销