1. //本地上传图片、语音
  2. function rsc_UploadFile(file) {
  3. var mypic = file.files[];
  4. //创建一个FormData空对象,然后使用append方法添加key/value
  5. var fd = new FormData();
  6. fd.append("myhead", mypic);
  7. //上传图片
  8. if (resourceManager.currentRscType==)
  9. fd.append("action", "uploadImg");
  10. //上传语音
  11. else if (resourceManager.currentRscType==)
  12. fd.append("action", "uploadVic");
  13. //上传视频
  14. else if (resourceManager.currentRscType == )
  15. fd.append("action", "uploadVdo");
  16. if (resourceManager.currentRscType == || resourceManager.currentRscType == )
  17. $("#resourceManagerUploadContent").css("height", "330px");
  18. else if (resourceManager.currentRscType == )
  19. $("#resourceManagerUploadContent").css("height", "420px");
  20. $("#upRscProcessBar").css("display","block");
  21.  
  22. $("#upSelectFileBtn").attr("disabled", "disabled");
  23.  
  24. var xhr = new XMLHttpRequest();
  25. xhr.onreadystatechange = function () {
  26. if (xhr.readyState == && xhr.status == ) {
  27. var data = JSON.parse(xhr.responseText);//如果上传图片成功,则保存
  28. if (data.returnValue == ) { var url = '';
  29. var sData = '';
  30.  
  31. //上传图片
  32. if (resourceManager.currentRscType == ) {
  33. url = GetHost() + data.returnData.tmpImgUrl;
  34. sData = Base.encode('{"action":"saveImg","iu":"' + url + '"}');
  35. }//上传语音
  36. else if (resourceManager.currentRscType == ) {
  37. url = GetHost() + data.returnData.vicUrl;
  38. var duration = data.returnData.duration;
  39. sData = Base.encode('{"action":"saveVic","vu":"' + url + '","dt":"' + duration + '"}');
  40. } else if (resourceManager.currentRscType == ) {
  41. url = GetHost() + data.returnData.vdoUrl;
  42. var duration = data.returnData.duration;
  43. var frontCover = GetHost() + data.returnData.tmpImgUrl;
  44. var sData = Base.encode('{"action":"saveVdo","vu":"' + url + '","fc":"' + frontCover + '","dt":"' + duration + '"}');
  45. }

  46. $.ajax({
  47. type: 'POST',
  48. url: GetHost() + 'tyadmin/Resource/index.ashx',
  49. data: sData,
  50. dataType: 'json',
  51. contentType: 'application/json',
  52. success: function (data) {
  53. if (data) {
  54. if (data.returnValue == ) {
  55. //自动点击当前选中的资源组并加载图片
  56. if (group && group > && resourceManager.groups && resourceManager.groups.length > ) {
  57. try {
  58. resourceManager.isLocalUpload = true;
  59. $("#resourceGroup_" + group).click();
  60. } catch (e) { console.log(e); }
  61. }
  62.  
  63. //关闭图片上传窗体
  64. closeUploadWin();
  65. } else alert(data.returnMsg);
  66. } else {
  67. if (resourceManager.currentRscType == )
  68. alert("图片上传失败,请重试!");
  69. else if (resourceManager.currentRscType == )
  70. alert("语音上传失败,请重试!");
  71. else if (resourceManager.currentRscType == )
  72. alert("视频上传失败,请重试!");
  73. }
  74. $("#rscUpload").val("");
  75. },
  76. error: function (msg) {
  77. alert(msg.responseText);
  78. }
  79. });
  80.  
  81. } else alert(data.returnMsg);
  82.  
  83. $("#upSelectFileBtn").removeAttr("disabled");
  84. }
  85. }
  86.  
  87. //侦查当前附件上传情况
  88. xhr.upload.onprogress = function (evt) {
  89.  
  90. //侦查附件上传情况
  91. //通过事件对象侦查
  92. //该匿名函数表达式大概0.1秒执行一次
  93.  
  94. var loaded = evt.loaded;//已经上传大小情况
  95. var tot = evt.total;//附件总大小
  96. var per = Math.floor( * loaded / tot); //已经上传的百分比
  97. try {
  98. //如果点击 返回 按钮,则中断文件的传输
  99. if (_isRSCXMLHttpAbort) {
  100. xhr.abort();
  101. }
  102.  
  103. //百分比
  104. var txtProgress = $("#txtProgress");
  105. txtProgress.html(per + "%");
  106. //进度条
  107. $(".upRscProcessContent").css("width", per + "%");
  108. } catch (e) { }
  109. }
  110.  
  111. xhr.open("post", GetHost() + 'tyadmin/Resource/index.ashx');
  112. xhr.send(fd);
  113. }

效果图如下:

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. Python 常见时间处理

    Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间. 时间间隔是以秒为单位的浮点小数. ...

  2. learn the python the hard way习题26~30总结

    考试试题26错误总结: 漏写字母,括号 写错字母 write(),read()的使用:只能打开使用了 open() 后返回的文件对象(file object),而不能直接使用文件名 if 语句中,条件 ...

  3. lanmp中环境变量的更改方法

    1.vim /etc/profile 改成: export PATH=$PATH:/www/wdlinux/phps/71/bin/ 然后运行: source /etc/profile

  4. xml的解构与组装

    xml的结构 <xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName>< ...

  5. CentOS6.8下实现配置配额

    CentOS6.8下实现配置配额 Linux系统是支持多用户的,即允许多个用户同时使用linux系统,普通用户在/home/目录下均有自己的家目录,在默认状态下,各个用户可以在自己的家目录下任意创建文 ...

  6. array_column的作用

    从记录集中取出 last_name 列,用相应的 "id" 列作为键值: <?php // 表示由数据库返回的可能记录集的数组 $a = array( array( 'id' ...

  7. leetcode-algorithms-15 3Sum

    leetcode-algorithms-15 3Sum Given an array nums of n integers, are there elements a, b, c in nums su ...

  8. HDU-2586-裸LCA入门-tarjan离线

    http://acm.hdu.edu.cn/showproblem.php?pid=2586 给出一颗树和边权,询问两点距离. 考虑tarjan离线做法,做法很巧妙,当前进行到u,对他的儿子v,当v子 ...

  9. Mysql优化系列--Innodb引擎下mysql自身配置优化-转

    原文链接:http://www.cnblogs.com/kevingrace/p/6133818.html 谢谢楼主 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全 ...

  10. Oracle DB 使用子查询来解决查询

    • 定义子查询 • 描述子查询可以解决的问题类型 • 列出子查询的类型 • 编写单行和多行子查询   • 子查询:类型.语法和准则 • 单行子查询: – 子查询中的组函数 – 带有子查询的HAVING ...