forked from danialfarid/ng-file-upload
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathangular-file-upload.min.js
9 lines (9 loc) · 1.89 KB
/
angular-file-upload.min.js
1
2
3
4
5
6
7
8
9
/**!
* AngularJS file upload/drop directive with http post and progress
* @author Danial <[email protected]>
* @version 1.1.4
*/
(function(){var h=angular.module("angularFileUpload",[]);h.service("$upload",["$http",function(e){this.upload=function(a){a.method=a.method||"POST";a.headers=a.headers||{};a.headers["Content-Type"]=void 0;a.transformRequest=angular.identity;var d=new FormData;if(a.data)for(var b in a.data){var c=a.data[b];d.append(b,c instanceof Object?JSON.stringify(c):c)}d.append(a.fileFormDataName||"file",a.file,a.file.name);d.__uploadProgress_=function(d){d&&a.progress(d)};a.data=d;var f=e(a);f.abort=function(){throw"upload is not started yet";
};d.__setAbortFunction_=function(d){f.abort=d};return f}}]);h.directive("ngFileSelect",["$parse","$http",function(e,a){return function(d,a,c){var f=e(c.ngFileSelect);a.bind("change",function(a){var c=[],b,g;b=a.target.files;if(null!=b)for(g=0;g<b.length;g++)c.push(b.item(g));d.$apply(function(){f(d,{$files:c,$event:a})})});a.bind("click",function(){this.value=null})}}]);h.directive("ngFileDropAvailable",["$parse","$http",function(e,a){return function(a,b,c){if("draggable"in document.createElement("span")){var f=
e(c.ngFileDropAvailable);a.$$phase?f(a):a.$apply(function(){f(a)})}}}]);h.directive("ngFileDrop",["$parse","$http",function(e,a){return function(a,b,c){if("draggable"in document.createElement("span")){var f=e(c.ngFileDrop);b[0].addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault();b.addClass(c.ngFileDragOverClass||"dragover")},!1);b[0].addEventListener("dragleave",function(a){b.removeClass(c.ngFileDragOverClass||"dragover")},!1);b[0].addEventListener("drop",function(e){e.stopPropagation();
e.preventDefault();b.removeClass(c.ngFileDragOverClass||"dragover");var h=[],k=e.dataTransfer.files,g;if(null!=k)for(g=0;g<k.length;g++)h.push(k.item(g));a.$apply(function(){f(a,{$files:h,$event:e})})},!1)}}}])})();