Skip to content

Commit d04534a

Browse files
committed
Merge pull request #602 from josencv/master
Added support to upload files without multipart (HTML5 only)
2 parents ceccfa0 + 78d5d52 commit d04534a

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

src/services/FileItem.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export default ($compile, FileLikeObject) => {
3535
formData: copy(uploader.formData),
3636
removeAfterUpload: uploader.removeAfterUpload,
3737
withCredentials: uploader.withCredentials,
38+
disableMultipart: uploader.disableMultipart,
3839
method: uploader.method
3940
}, options, {
4041
uploader: uploader,

src/services/FileUploader.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -424,22 +424,28 @@ export default (fileUploaderOptions, $rootScope, $http, $window, FileLikeObject,
424424
*/
425425
_xhrTransport(item) {
426426
var xhr = item._xhr = new XMLHttpRequest();
427-
var form = new FormData();
427+
var sendable;
428428

429429
this._onBeforeUploadItem(item);
430430

431-
forEach(item.formData, (obj) => {
432-
forEach(obj, (value, key) => {
433-
form.append(key, value);
431+
if (!item.disableMultipart) {
432+
sendable = new FormData();
433+
forEach(item.formData, (obj) => {
434+
forEach(obj, (value, key) => {
435+
sendable.append(key, value);
436+
});
434437
});
435-
});
438+
439+
sendable.append(item.alias, item._file, item.file.name);
440+
}
441+
else {
442+
sendable = item._file;
443+
}
436444

437445
if(typeof(item._file.size) != 'number') {
438446
throw new TypeError('The file specified is no longer valid');
439447
}
440448

441-
form.append(item.alias, item._file, item.file.name);
442-
443449
xhr.upload.onprogress = (event) => {
444450
var progress = Math.round(event.lengthComputable ? event.loaded * 100 / event.total : 0);
445451
this._onProgressItem(item, progress);
@@ -476,7 +482,7 @@ export default (fileUploaderOptions, $rootScope, $http, $window, FileLikeObject,
476482
xhr.setRequestHeader(name, value);
477483
});
478484

479-
xhr.send(form);
485+
xhr.send(sendable);
480486
this._render();
481487
}
482488
/**

src/values/options.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@ export default {
1313
filters: [],
1414
formData: [],
1515
queueLimit: Number.MAX_VALUE,
16-
withCredentials: false
16+
withCredentials: false,
17+
disableMultipart: false
1718
};

0 commit comments

Comments
 (0)