纯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 ...
随机推荐
- Gitlab启动、停止、重启(两种启动方式)
因为Gitlab不是我部署的,是之前总监部署的,服务器突然更新系统了,Git服务器就没有自启··自启··自启······,自己操作启动没有成功,然后网上搜了一下都是这三种启动关闭重启的方式,可是我这里 ...
- DRL Hands-on book
代码:https://github.com/PacktPublishing/Deep-Reinforcement-Learning-Hands-On Chapter 1 What is Reinfor ...
- mongoRepository 支持的所有接口
与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoReposito ...
- 苹果用户转入mate30,被恶心到了
几年没更新博客了,今天入了新坑,一堆东西想吐槽,发一篇喷一波. 几千块的机器,牛皮癣广告居然这么鬼多,预装一打,推荐一打,不比千元机少,这TM是旗舰机啊.华为官方产的 app打着服务旗号,不给权限强退 ...
- 在ubuntu16.04-32bits 下编译vlc和vlc-qt开源项目
软件版本: Ubuntu14.04 32位 Qt5.4.0 32位 开源项目: vlc2.2.4: wget http://download.videolan.org/pub/v ...
- 编译openwrt时报错build_dir/hostpkg/libubox-2018-07-25-c83a84af/blobmsg_json.c:21:19: fatal error: json.h: No such file or directory
答: 一. 详细日志: build_dir/hostpkg/libubox-2018-07-25-c83a84af/blobmsg_json.c:21:19: fatal error: json.h: ...
- 链表反转 C++
ListNode* reverse1(ListNode* pHead) { if(pHead == NULL) return NULL; ListNode * p1 = NULL; ListNode ...
- Springboot获取resource的路径
1.获取resource目录下的template路径 String path = Thread.currentThread().getContextClassLoader().getResource( ...
- idea将springboot打包成jar或者war
1.首先在pom.xml中添加下面配置 <groupId>com.melo</groupId> <artifactId>focus</artifactId&g ...
- 12@365 java上传文件(word、图片等)至服务器
这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...