纯H5 AJAX文件上传加进度条功能
上传代码js部分
//包上传
$('.up_apk').change(function () {
var obj = $(this);
var form_data = new FormData();
// 获取文件
var file_data = obj.prop("files")[0];
// 表单信息
form_data.append("id", "001");
form_data.append("name", "test");
form_data.append("apk", file_data);
if (file_data.type != 'application/vnd.android.package-archive') {
alert('文件格式错误');
return false;
}
$('.jdt').slideDown('fast');
var size = Math.round(file_data.size / 1024 / 1024 * 100) / 100 + 'MB';
$('.jdt .size').html(size);
//提交
$.ajax({
type: "POST",
url: 'url',
dataType: "json",
processData: false, // 注意:让jQuery不要处理数据
contentType: false, // 注意:让jQuery不要设置contentType
data: form_data,
xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) { //检查upload属性是否存在
//绑定progress事件的回调函数
myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
}
return myXhr; //xhr对象返回给jQuery使用
},
success: function (d) {
if (d.code == 200) {
//处理返回信息
} else {
alert(d.msg);
}
$('.jdt').slideUp('slow');
},
error: function (e) {
alert("错误!!");
}
});
function progressHandlingFunction(e) {
var curr = e.loaded;
var total = e.total;
var wan = Math.round(curr / 1024 / 1024 * 100) / 100;
var bfb = Math.round(curr / total * 10000) / 100;
$('.jdt .wan').html(wan + 'MB');
$('.jdt .bfb').html(bfb + '%');
$('.jdt .jindu').css('width', bfb + '%');
}
});
html部分
<style>
.jdt{display: none;}
.jdtjd{width: 500px;height: 15px;margin: 20px 0;border:1px solid #0a8c8b;border-radius: 7px;}
.jdtcs{width: 500px;height: 10px;text-align: center;color:#006400;margin-top: -49px;}
.jdt i{font-style:normal;}
.jdtjd .jindu{display: block;height: 15px;width: 0%; border-radius: 7px; background-color: #00ccca;z-index: -1;}
.jdtcs .bfb{text-align: center;}
.jdtcs .size{float: right;}
.jdtcs .wan{float:left;}
</style>
<input class="up_apk" type="file" value="本地上传" accept=".apk"/>
<div class="jdt">
<div class="jdtjd"><i class="jindu"></i></div>
<div class="jdtcs"><i class="wan">0MB</i><i class="bfb">0%</i><i class="size">0MB</i></div>
</div>
纯H5 AJAX文件上传加进度条功能的更多相关文章
- springMVC+ajax 文件上传 带进度条
前端代码: <form id= "uploadForm"> <p >指定文件名: <input type="text" name= ...
- jquery 实现拖动文件上传加进度条
通过对文件的拖动实现文件的上传,主要用到的是HTML5的ondrop事件,上传内容通道FormData传输: //进度条 <div class="parent-dlg" &g ...
- layui 文件上传加进度条
1.页面 <div class="layui-row layui-col-space5"> <div class="layui-form-item&qu ...
- atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7
atitit.文件上传带进度条的实现原理and组件选型and最佳实践总结O7 1. 实现原理 1 2. 大的文件上传原理::使用applet 1 3. 新的bp 2 1. 性能提升---分割小文件上传 ...
- atitit. 文件上传带进度条 atiUP 设计 java c# php
atitit. 文件上传带进度条 atiUP 设计 java c# php 1. 设计要求 1 2. 原理and 架构 1 3. ui 2 4. spring mvc 2 5. springMVC.x ...
- HTML5 + AJAX ( jQuery版本 ) 文件上传带进度条
页面技术:HTML5 + AJAX ( jQuery) 后台技术:Servlet 3.0 服务器:Tomcat 7.0 jQuery版本:1.9.1 Servlet 3.0 代码 package or ...
- ajax异步文件上传和进度条
一.ajax异步文件上传 之前有说过在form表单内的文件上传,但是会刷新页面,下面就来实现不刷新页面的异步文件上传 <div class="uploding_div"> ...
- Springboot 文件上传(带进度条)
1. 相关依赖 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- HTML5文件上传还有进度条
以下是自学it网--中级班上课笔记 网址:www.zixue.it 需要在chrome,ff,IE10下运行 html页面 <!DOCTYPE html> <html lang=&q ...
随机推荐
- 移动端隐藏scroll滚动条::-webkit-scrollbar
::-webkit-scrollbar {/*隐藏滚轮*/ display: none; } CSS3自定义滚动条样式 -webkit-scrollbar 前言 webkit支持拥有overflow属 ...
- Backen-Development record 1
单例模式 在应用这个模式时,单例对象的类必须保证只有一个实例存在. 服务进程中的其他对象再通过这个单例对象获取这些配置信息.这种方式简化了在复杂环境下的配置管理. __new__实现 用装饰器实现单例 ...
- pycharm创建.py文件时,自动添加头文件注释
File->settings->Editor->Code Templates->Python Script 添加以下代码: #!/usr/bin/env python # -* ...
- LeetCode 136. 只出现一次的数字(Single Number)
题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...
- Java-synchronized 中锁的状态及其转换
synchronized 锁的优化过程:无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 一.不同锁对象的状态表示(需要了解 Java 对象头) https://wiki.open ...
- Mybatis多值传递的方式
一共有三种方式 1.参数传入Map 2参数使用@params 3.直接使用时用#{0},#{2} 参考网址 :https://www.2cto.com/database/201409/338155.h ...
- 【导航】JennyHui 老白兔记录贴
英语控 TED X - > 笔记 程序媛 2019-08-24 Java学习路径规划 思考记录 2018-08-24 常见的工作思考方式 浪费时间 百家讲坛 开卷八分钟
- Linux命令之文件和目录操作命令(一)—— ls
本文介绍了ls命令的最常用法. 1.用法: ls [选项][目录名或文件名] 2.选项: -l 使用长格式显示目录或文件的详细信息 -a 显示隐藏文件 -h 人性化显示文件或目录的大小 -d 显示目录 ...
- Leaflet - 实现按照路径方向旋转的 Marker
在每帧动画时设置 Marker 的 transform 属性就行,zjffun/Leaflet.MovingMarker at zjf/feature-rotate 我在这个 Fork 中实现了一下. ...
- 百度AI---语音识别
题记:娱乐性的玩玩百度接口. 说实话,其接口个人觉得有点烂,重试了好几个音频文件才成功. 1.重新申请AppID.SecretKey .API Key. 链接:https://console.bce. ...