diff --git a/components/file-upload/file-uploader.class.ts b/components/file-upload/file-uploader.class.ts index b014b2d..a087058 100644 --- a/components/file-upload/file-uploader.class.ts +++ b/components/file-upload/file-uploader.class.ts @@ -22,6 +22,7 @@ export interface FileUploaderOptions { queueLimit?:number; removeAfterUpload?:boolean; url?:string; + disableMultipart?:boolean; } export class FileUploader { @@ -37,7 +38,8 @@ export class FileUploader { autoUpload: false, isHTML5: true, filters: [], - removeAfterUpload: false + removeAfterUpload: false, + disableMultipart: false }; private _failFilterIndex:number; @@ -276,7 +278,7 @@ export class FileUploader { protected _xhrTransport(item:any):any { let xhr = item._xhr = new XMLHttpRequest(); - let form = new FormData(); + let sendable:any; this._onBeforeUploadItem(item); // todo /*item.formData.map(obj => { @@ -287,9 +289,15 @@ export class FileUploader { if (typeof item._file.size !== 'number') { throw new TypeError('The file specified is no longer valid'); } - this._onBuildItemForm(item, form); + if(!this.options.disableMultipart) { + sendable = new FormData(); + this._onBuildItemForm(item, sendable); + + sendable.append(item.alias, item._file, item.file.name); + } else { + sendable = item._file; + } - form.append(item.alias, item._file, item.file.name); xhr.upload.onprogress = (event:any) => { let progress = Math.round(event.lengthComputable ? event.loaded * 100 / event.total : 0); this._onProgressItem(item, progress); @@ -328,7 +336,7 @@ export class FileUploader { if (this.authToken) { xhr.setRequestHeader('Authorization', this.authToken); } - xhr.send(form); + xhr.send(sendable); this._render(); }