//本地上传图片、语音
function rsc_UploadFile(file) {
var mypic = file.files[];
//创建一个FormData空对象,然后使用append方法添加key/value
var fd = new FormData();
fd.append("myhead", mypic);
//上传图片
if (resourceManager.currentRscType==)
fd.append("action", "uploadImg");
//上传语音
else if (resourceManager.currentRscType==)
fd.append("action", "uploadVic");
//上传视频
else if (resourceManager.currentRscType == )
fd.append("action", "uploadVdo");
if (resourceManager.currentRscType == || resourceManager.currentRscType == )
$("#resourceManagerUploadContent").css("height", "330px");
else if (resourceManager.currentRscType == )
$("#resourceManagerUploadContent").css("height", "420px");
$("#upRscProcessBar").css("display","block"); $("#upSelectFileBtn").attr("disabled", "disabled"); var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == && xhr.status == ) {
var data = JSON.parse(xhr.responseText);//如果上传图片成功,则保存
if (data.returnValue == ) { var url = '';
var sData = ''; //上传图片
if (resourceManager.currentRscType == ) {
url = GetHost() + data.returnData.tmpImgUrl;
sData = Base.encode('{"action":"saveImg","iu":"' + url + '"}');
}//上传语音
else if (resourceManager.currentRscType == ) {
url = GetHost() + data.returnData.vicUrl;
var duration = data.returnData.duration;
sData = Base.encode('{"action":"saveVic","vu":"' + url + '","dt":"' + duration + '"}');
} else if (resourceManager.currentRscType == ) {
url = GetHost() + data.returnData.vdoUrl;
var duration = data.returnData.duration;
var frontCover = GetHost() + data.returnData.tmpImgUrl;
var sData = Base.encode('{"action":"saveVdo","vu":"' + url + '","fc":"' + frontCover + '","dt":"' + duration + '"}');
}

$.ajax({
type: 'POST',
url: GetHost() + 'tyadmin/Resource/index.ashx',
data: sData,
dataType: 'json',
contentType: 'application/json',
success: function (data) {
if (data) {
if (data.returnValue == ) {
//自动点击当前选中的资源组并加载图片
if (group && group > && resourceManager.groups && resourceManager.groups.length > ) {
try {
resourceManager.isLocalUpload = true;
$("#resourceGroup_" + group).click();
} catch (e) { console.log(e); }
} //关闭图片上传窗体
closeUploadWin();
} else alert(data.returnMsg);
} else {
if (resourceManager.currentRscType == )
alert("图片上传失败,请重试!");
else if (resourceManager.currentRscType == )
alert("语音上传失败,请重试!");
else if (resourceManager.currentRscType == )
alert("视频上传失败,请重试!");
}
$("#rscUpload").val("");
},
error: function (msg) {
alert(msg.responseText);
}
}); } else alert(data.returnMsg); $("#upSelectFileBtn").removeAttr("disabled");
}
} //侦查当前附件上传情况
xhr.upload.onprogress = function (evt) { //侦查附件上传情况
//通过事件对象侦查
//该匿名函数表达式大概0.1秒执行一次 var loaded = evt.loaded;//已经上传大小情况
var tot = evt.total;//附件总大小
var per = Math.floor( * loaded / tot); //已经上传的百分比
try {
//如果点击 返回 按钮,则中断文件的传输
if (_isRSCXMLHttpAbort) {
xhr.abort();
} //百分比
var txtProgress = $("#txtProgress");
txtProgress.html(per + "%");
//进度条
$(".upRscProcessContent").css("width", per + "%");
} catch (e) { }
} xhr.open("post", GetHost() + 'tyadmin/Resource/index.ashx');
xhr.send(fd);
}

效果图如下:

js上传文件(可自定义进度条)的更多相关文章

  1. HTML5 jQuery+FormData 异步上传文件,带进度条

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href ...

  2. Spring Boot上传文件(带进度条)

    Spring Boot 上传文件(带进度条)# 配置文件 spring: freemarker: template-loader-path: classpath:/static/ ##Spring B ...

  3. ajax 上传文件,显示进度条,进度条100%,进度条隐藏,出现卡顿就隐藏进度条,显示正在加载,再显示上传完成

    <form id="uploadForm" method="post" enctype="multipart/form-data"&g ...

  4. MVC上传文件并模拟进度条

    进度条样式和JS <style type="text/css"> .spa { font-size: 12px; color: #0066ff; } .put { fo ...

  5. jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟

    在很多项目中都会叫用户上传东西这些的,自从接触了jquery 和ajax之后就不管做什么,首先都会想到这个,我这个人呢?是比较重视客户体验的,这次我这边负责的是后台板块,然后就有一块是要求用户上传照片 ...

  6. spring mvc + xmlHttpRequest2.0 实现无刷新上传文件,带进度条和剩余时间

    1.springmvc支持文件上传,需要在spring-mvc.xml配置文件中加上下面的一段话: <!-- 支持上传文件 --> <bean id="multipartR ...

  7. js实现图片上传预览及进度条

    原文js实现图片上传预览及进度条 最近在做图片上传的时候,由于产品设计的比较fashion,上网找了比较久还没有现成的,因此自己做了一个,实现的功能如下: 1:去除浏览器<input type= ...

  8. egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名

    egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名 评论:10 · 阅读:8437· 喜欢:0 一.需求 二.CSRF 校验 三.通过 form 表单上传文件 四.通过 ...

  9. 使用ajaxfileupload.js上传文件

    一直以来上传文件都是使用form表单上传文件,也看到过有人使用js上传文件,不过看起来蛮简单的也就没有怎么去理会.今天突然要使用这种方式上传文件,期间还遇到点问题.因此就记录下来,方便以后遇到这样的问 ...

随机推荐

  1. appium自动化测试 环境搭建

    最 近接手的项目是移动端自动化测试 ,需要用的appium ,头一回使用, 项目特点:1)数据有时效性,需要在短时间内验证大量数据, 2) 人工去一个一个核对发现不了太多BUG. 环境搭建:参考虫师的 ...

  2. OSPF - 1,基础

    1,OSPF知识点a)在OSPF中,如果是环回口宣告进OSPF,不管宣告时配置的是多少位掩码,路由器收到的都是32位.(EIGRP配了多少位就收到多少位).好处:EIGRP中,在PING包发起时如果在 ...

  3. liunx之用户管理

    用户管理 ==============================================================groupadd,groupdeluseradd,usermod, ...

  4. android--------Socket的简单了解

    Socket目录 Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连 ...

  5. find xss

    from :http://blog.sina.com.cn/s/blog_68d342d90100nh7b.html 什么是XSS跨站攻击: http://baike.baidu.com/view/5 ...

  6. 『计算机视觉』Mask-RCNN_推断网络其三:RPN锚框处理和Proposal生成

    一.RPN锚框信息生成 上文的最后,我们生成了用于计算锚框信息的特征(源代码在inference模式中不进行锚框生成,而是外部生成好feed进网络,training模式下在向前传播时直接生成锚框,不过 ...

  7. Codeforces Round #250 (Div. 1)E. The Child and Binary Tree

    题意:有一个集合,求有多少形态不同的二叉树满足每个点的权值都属于这个集合并且总点权等于i 题解:先用生成函数搞出来\(f(x)=f(x)^2*c(x)+1\) 然后转化一下变成\(f(x)=\frac ...

  8. 【Oracle】【1】查询N分钟之前的数据

    --查询距离现在N分钟前的数据 1440:表示一天有1440分钟 SYSDATE - 10 :表示10天前 参考博客: 1,oracle 查询十分钟之前的数据 - 胡金水的博客 - CSDN博客 ht ...

  9. HBase之六:HBase的RowKey设计

    数据模型 我们可以将一个表想象成一个大的映射关系,通过行健.行健+时间戳或行键+列(列族:列修饰符),就可以定位特定数据,Hbase是稀疏存储数据的,因此某些列可以是空白的, Row Key Time ...

  10. Leetcode 999. 车的可用捕获量

    999. 车的可用捕获量  显示英文描述 我的提交返回竞赛   用户通过次数255 用户尝试次数260 通过次数255 提交次数357 题目难度Easy 在一个 8 x 8 的棋盘上,有一个白色车(r ...