uploadify-icon.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. var icon_xhr;
  2. var icon_ot;
  3. var icon_oloaded;
  4. function upload_icon() {
  5. var upfile = $("#upload_icon")[0].files[0];
  6. $("#dialog-uploadify").show();
  7. if (upfile.size > 1048576) {
  8. $("#speed-uploadify").text("上传失败,大小不能超过1MB!");
  9. return false;
  10. }
  11. if (upfile.size < 1024) {
  12. var _size = upfile.size + "b";
  13. } else {
  14. var _size = Math.floor(upfile.size / 1024) + "kb";
  15. }
  16. if (upfile.name.length > 10) {
  17. var _name = upfile.name.substr(0, 10) + "...";
  18. } else {
  19. var _name = upfile.name;
  20. }
  21. $("#speed-uploadify").html(_name + "(" + _size + ')<span id="percentage"></span>');
  22. $(".turbo-upload").html('<a class="ng-binding" href="javascript:cancle_icon()">取消</a>');
  23. var fd = new FormData();
  24. fd.append("icon", upfile);
  25. fd.append("aid", in_id);
  26. fd.append("uid", in_uid);
  27. fd.append("upw", in_upw);
  28. icon_xhr = new XMLHttpRequest();
  29. icon_xhr.open("post", in_path + "upload/index/upicon");
  30. icon_xhr.onload = complete_icon;
  31. icon_xhr.onerror = failed_icon;
  32. icon_xhr.upload.onprogress = progress_icon;
  33. icon_xhr.upload.onloadstart = function (evt) {
  34. icon_ot = new Date().getTime();
  35. icon_oloaded = 0;
  36. };
  37. icon_xhr.send(fd);
  38. }
  39. function progress_icon(evt) {
  40. var nt = new Date().getTime();
  41. var pertime = (nt - icon_ot) / 1e3;
  42. icon_ot = new Date().getTime();
  43. var perload = evt.loaded - icon_oloaded;
  44. icon_oloaded = evt.loaded;
  45. var speed = perload / pertime;
  46. var units = "b/s";
  47. if (speed / 1024 > 1) {
  48. speed = speed / 1024;
  49. units = "k/s";
  50. }
  51. if (speed / 1024 > 1) {
  52. speed = speed / 1024;
  53. units = "M/s";
  54. }
  55. speed = speed.toFixed(1);
  56. var per = Math.round(evt.loaded / evt.total * 100);
  57. $(".growing").css("width", per + "%");
  58. $("#percentage").text(" - " + per + "% - " + speed + units);
  59. if (per > 99) {
  60. $("#percentage").text(" 正在保存,请稍等...");
  61. }
  62. }
  63. function complete_icon(evt) {
  64. var response = evt.target.responseText;
  65. if (response < 1) {
  66. if (response == -3) {
  67. $("#speed-uploadify").text("文件不规范,请重新选择!");
  68. } else if (response == -1) {
  69. $("#speed-uploadify").text("应用不存在或已被删除!");
  70. } else if (response == -2) {
  71. $("#speed-uploadify").text("您不能更新别人的应用!");
  72. }
  73. $(".growing").css("width", "0%");
  74. $(".turbo-upload").hide();
  75. } else {
  76. remote["open"] > 0 ? remote_up_icon() : location.reload();
  77. }
  78. }
  79. function failed_icon() {
  80. $("#speed-uploadify").text("上传异常,请重试!");
  81. $(".growing").css("width", "0%");
  82. $(".turbo-upload").hide();
  83. }
  84. function cancle_icon() {
  85. icon_xhr.abort();
  86. $("#speed-uploadify").fadeOut(1e3, function () {
  87. $(this).show().text("已取消上传");
  88. $(".growing").css("width", "0%");
  89. $(".turbo-upload").hide();
  90. });
  91. }