cloudUpload.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // var baseurl = "http://192.168.2.105:8012/netdisk-web-perpc/";
  2. var baseurl = 'http://wpan.nxjiewei.com:8012/netdisk-web-perpc/';
  3. function guid() {
  4. function S4() {
  5. return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
  6. }
  7. return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
  8. }
  9. var chunkSize = 1048576; //每个切块的大小(1M)
  10. var threads = 2; //线程数
  11. var uuid = guid();
  12. var md5 = '',values = 0;
  13. var uploader=null;
  14. function init(){
  15. uploader = WebUploader.create({
  16. swf: 'Uploader.swf',
  17. server: baseurl+'disk/fileupload/uploadChunk',
  18. pick: '#picker',
  19. resize: false,
  20. auto:true,
  21. threads:threads,
  22. compress:false,//默认压缩,对jpg的md5计算产生影响
  23. chunkRetry:0,
  24. prepareNextFile:true,
  25. chunked:true,
  26. chunkSize:chunkSize,
  27. duplicate:false,//去重
  28. formData:{
  29. }
  30. });
  31. //第一步:加入队列
  32. uploader.on('fileQueued', function( file ) {
  33. // addNode(file.id,file.name,file.size);
  34. UIActionProgress.open({
  35. maskBg: 'rgba(0,0,0,0.5)',
  36. styles: {
  37. h: 108,
  38. bg: '#fff',
  39. title: {
  40. size: 13,
  41. color: '#000',
  42. marginT: 10
  43. },
  44. msg: {
  45. size: 12,
  46. color: '#000',
  47. marginT: 5
  48. },
  49. lable: {
  50. size: 12,
  51. color: '#696969',
  52. marginB: 5
  53. },
  54. progressBar: {
  55. size: 2,
  56. normal: '#000',
  57. active: '#4876FF',
  58. marginB: 35,
  59. margin: 5
  60. }
  61. },
  62. data: {
  63. title: '正在上传',
  64. msg: '',
  65. value: 0
  66. }
  67. },function(ret){
  68. });
  69. });
  70. //第二步:上传过程计算进度
  71. uploader.on('uploadProgress', function(file, percentage) {
  72. UIActionProgress.setData({
  73. data: {
  74. title: '正在上传...',
  75. msg: '',
  76. value: percentage*100
  77. }
  78. });
  79. });
  80. //第三步:上传完成合并切块
  81. uploader.on('uploadSuccess', function( file,response ) {
  82. // updateNode(file.id,3,"上传成功","","");
  83. uploader.removeFile(file,true);
  84. });
  85. //第四步:上传失败
  86. //报错让前端捕捉有两种方式:1)response.setStatus(500); 2)uploaderAccept返回false
  87. uploader.on('uploadError', function( file,reason ) {
  88. // updateNode(file.id,4,"上传失败","","");
  89. return false;
  90. });
  91. uploader.on('uploadAccept', function( object,res ) {
  92. if(res.code==1){
  93. api.toast({
  94. msg: '上传失败',
  95. duration: 2000,
  96. location: 'top'
  97. });
  98. UIActionProgress.close();
  99. return false;
  100. }
  101. });
  102. }
  103. //计算md5
  104. function getFileMd5(file,deferred,token){
  105. uploader.md5File(file).then(function(val) {
  106. var url=baseurl+"disk/fileupload/checkFile";
  107. md5 = val
  108. var args={
  109. "filemd5":val,
  110. "filename":file.name,
  111. "filesize":file.size,
  112. "token":token
  113. };
  114. $.post(url,args,function(data){
  115. if(data.code==0){
  116. if(data.data==1){
  117. uploader.skipFile(file);
  118. }
  119. deferred.resolve();
  120. }else{
  121. deferred.reject();
  122. }
  123. });
  124. });
  125. }