Skip to content

Commit af65201

Browse files
committed
add upload cancel function but if I cancel one upload file then all files will be cancel
1 parent bc934aa commit af65201

File tree

6 files changed

+46
-15
lines changed

6 files changed

+46
-15
lines changed

demo/js/main.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ $(function() {
3535
plupload.each(files, function(file) {
3636
var progress = new FileProgress(file, 'fsUploadProgress');
3737
progress.setStatus("等待...");
38+
progress.uploadCancel(up);
3839
});
3940
},
4041
'BeforeUpload': function(up, file) {
@@ -43,12 +44,16 @@ $(function() {
4344
if (up.runtime === 'html5' && chunk_size) {
4445
progress.setChunkProgess(chunk_size);
4546
}
47+
progress.uploadCancel(up);
4648
},
4749
'UploadProgress': function(up, file) {
4850
var progress = new FileProgress(file, 'fsUploadProgress');
51+
4952
var chunk_size = plupload.parseSize(this.getOption('chunk_size'));
5053

5154
progress.setProgress(file.percent + "%", file.speed, chunk_size);
55+
progress.uploadCancel(up);
56+
5257
},
5358
'UploadComplete': function() {
5459
$('#success').show();
@@ -58,11 +63,11 @@ $(function() {
5863
progress.setComplete(up, info);
5964
},
6065
'Error': function(up, err, errTip) {
61-
$('table').show();
62-
var progress = new FileProgress(err.file, 'fsUploadProgress');
63-
progress.setError();
64-
progress.setStatus(errTip);
65-
}
66+
$('table').show();
67+
var progress = new FileProgress(err.file, 'fsUploadProgress');
68+
progress.setError();
69+
progress.setStatus(errTip);
70+
}
6671
// ,
6772
// 'Key': function(up, file) {
6873
// var key = "";

demo/js/qiniu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ function QiniuJsSDK() {
440440
});
441441

442442
uploader.bind('UploadProgress', function(up, file) {
443+
443444
// 计算速度
444445

445446
speedCalInfo.currentTime = new Date().getTime();

demo/js/ui.js

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ function FileProgress(file, targetID) {
3232
var progressBarWrapper = $("<div/>");
3333
progressBarWrapper.addClass("progress progress-striped");
3434

35-
3635
var progressBar = $("<div/>");
3736
progressBar.addClass("progress-bar progress-bar-info")
3837
.attr('role', 'progressbar')
@@ -44,22 +43,18 @@ function FileProgress(file, targetID) {
4443
var progressBarPercent = $('<span class=sr-only />');
4544
progressBarPercent.text(fileSize);
4645

47-
48-
var progressCancel = $('<a href=# />');
49-
progressCancel.hide().addClass('progressCancel').text('');
50-
46+
var progressCancel = $('<a href=javascript:; />');
47+
progressCancel.show().addClass('progressCancel').text('×');
5148

5249
progressBar.append(progressBarPercent);
5350
progressBarWrapper.append(progressBar);
5451
progressBarBox.append(progressBarWrapper);
5552
progressBarBox.append(progressCancel);
5653

57-
5854
var progressBarStatus = $('<div class="status text-center"/>');
5955
progressBarBox.append(progressBarStatus);
6056
progressBarTd.append(progressBarBox);
6157

62-
6358
Wrappeer.append(progressText);
6459
Wrappeer.append(progressSize);
6560
Wrappeer.append(progressBarTd);
@@ -141,6 +136,7 @@ FileProgress.prototype.setProgress = function(percentage, speed, chunk_size) {
141136
if (file.status !== plupload.DONE && percentage === 100) {
142137
percentage = 99;
143138
}
139+
144140
progressbar.attr('aria-valuenow', percentage).css('width', percentage + '%');
145141

146142
if (chunk_size) {
@@ -187,7 +183,8 @@ FileProgress.prototype.setProgress = function(percentage, speed, chunk_size) {
187183
};
188184

189185
FileProgress.prototype.setComplete = function(up, info) {
190-
var td = this.fileProgressWrapper.find('td:eq(2) .progress');
186+
var td = this.fileProgressWrapper.find('td:eq(2)'),
187+
tdProgress = td.find('.progress');
191188

192189
var res = $.parseJSON(info);
193190
var url;
@@ -203,7 +200,8 @@ FileProgress.prototype.setComplete = function(up, info) {
203200
"<div class=hash><strong>Hash:</strong>" + res.hash + "</div>";
204201
}
205202

206-
td.html(str).removeClass().next().next('.status').hide();
203+
tdProgress.html(str).removeClass().next().next('.status').hide();
204+
td.find('.progressCancel').hide();
207205

208206
var progressNameTd = this.fileProgressWrapper.find('.progressName');
209207
var imageView = '?imageView2/1/w/100/h/100';
@@ -361,6 +359,7 @@ FileProgress.prototype.setCancelled = function(manual) {
361359
}
362360
this.fileProgressWrapper.attr('class', progressContainer);
363361
this.fileProgressWrapper.find('td .progress .progress-bar-info').css('width', 0);
362+
this.fileProgressWrapper.find('td:eq(2) .btn-default').hide();
364363
};
365364

366365
FileProgress.prototype.setStatus = function(status, isUploading) {
@@ -369,6 +368,21 @@ FileProgress.prototype.setStatus = function(status, isUploading) {
369368
}
370369
};
371370

371+
FileProgress.prototype.uploadCancel = function(up) {
372+
var self = this;
373+
if (up) {
374+
375+
self.fileProgressWrapper.find('td:eq(2) .progressCancel').on('click', function(){
376+
self.setCancelled(false);
377+
self.setStatus("取消上传");
378+
// var status_before = self.file.status;
379+
up.removeFile(self.file);
380+
up.stop();
381+
return true;
382+
});
383+
}
384+
385+
};
372386

373387
FileProgress.prototype.appear = function() {
374388
if (this.getTimer() !== null) {

demo/main.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ h1 .view_code {
5050
position: relative;
5151
height: 100%;
5252
}
53+
tr .progress{
54+
width: 96%;
55+
display: inline-block;
56+
}
5357
tr .progress-bar {
5458
min-height: 20px;
5559
float: none;
@@ -63,6 +67,12 @@ tr .progress .chunk-status {
6367
left: 24px;
6468
top: 0;
6569
}
70+
tr .progressCancel{
71+
display: inline-block;
72+
float: right;
73+
position: relative;
74+
z-index: 100;
75+
}
6676
.status {
6777
position: absolute;
6878
width: 100%;

src/qiniu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ function QiniuJsSDK() {
440440
});
441441

442442
uploader.bind('UploadProgress', function(up, file) {
443+
443444
// 计算速度
444445

445446
speedCalInfo.currentTime = new Date().getTime();

src/qiniu.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)