Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0511e2a

Browse files
committed
Fix safrazik#12 Add support for custom FormData
1 parent 1ffb129 commit 0511e2a

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

src/components/vue-file-agent-mixin.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,22 @@ export default {
8484
})
8585
video.load();
8686
},
87-
upload(url, headers, filesData){
87+
upload(url, headers, filesData, createFormData){
8888
var validFilesData = [];
8989
for(var i = 0; i < filesData.length; i++){
9090
if(!filesData[i].error){
9191
validFilesData.push(filesData[i]);
9292
}
9393
}
94-
return uploader.upload(url, headers, validFilesData, (overallProgress)=> {
94+
return uploader.upload(url, headers, validFilesData, createFormData, (overallProgress)=> {
9595
this.overallProgress = overallProgress;
9696
});
9797
},
98-
deleteUpload(url, headers, fileData){
98+
deleteUpload(url, headers, fileData, uploadData){
9999
if(this.filesData.length < 1){
100100
this.overallProgress = 0;
101101
}
102-
return uploader.deleteUpload(url, headers, fileData);
102+
return uploader.deleteUpload(url, headers, fileData, uploadData);
103103
},
104104
autoUpload(filesData){
105105
if(!this.uploadUrl){

src/lib/upload-helper.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class UploadHelper {
6363
fileData.error.upload = errorText;
6464
}
6565

66-
upload(url, headers, filesData, progressFn){
66+
upload(url, headers, filesData, createFormData, progressFn, configureFn){
6767
var self = this;
6868
progressFn = progressFn || function(){};
6969
var promises = [];
@@ -76,15 +76,24 @@ class UploadHelper {
7676
}
7777
for(let i = 0; i < filesData.length; i++){
7878
let fileData = filesData[i];
79-
var formData = new FormData();
80-
formData.append('file', fileData.file);
79+
var formData;
80+
if(typeof createFormData == 'function'){
81+
formData = createFormData(fileData);
82+
}
83+
else {
84+
formData = new FormData();
85+
formData.append('file', fileData.file);
86+
}
8187
(function(fileData){
8288
var promise = self.doUpload(url, headers, formData, function(progressEvent) {
8389
var percentCompleted = (progressEvent.loaded * 100) / progressEvent.total;
8490
fileData.progress(percentCompleted >= 100 ? 99.99 : percentCompleted); // do not complete until promise resolved
8591
updateOverallProgress();
8692
}, function(xhr){
8793
fileData.xhr = xhr;
94+
if(typeof configureFn == 'function'){
95+
configureFn(xhr);
96+
}
8897
});
8998
promise.then(function(response){
9099
delete fileData.xhr;
@@ -99,13 +108,16 @@ class UploadHelper {
99108
return Promise.all(promises);
100109
}
101110

102-
deleteUpload(url, headers, fileData){
111+
deleteUpload(url, headers, fileData, uploadData){
103112
return new Promise((resolve, reject)=> {
104113
if (fileData.xhr) {
105114
fileData.xhr.abort();
106115
}
107-
if (fileData.upload) {
108-
this.doDeleteUpload(url, headers, fileData.upload, (xhr)=> {
116+
if(uploadData === undefined){
117+
uploadData = fileData.upload;
118+
}
119+
if (uploadData) {
120+
this.doDeleteUpload(url, headers, uploadData, (xhr)=> {
109121
}).then((result)=> {
110122
resolve(result);
111123
}, (err)=> {

0 commit comments

Comments
 (0)