| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 | 
							- (function (root, factory) {
 
-   if (typeof define === 'function' && define.amd) {
 
-     // AMD. Register as an anonymous module.
 
-     define('simple-uploader', ["jquery",
 
-       "simple-module"], function ($, SimpleModule) {
 
-       return (root.returnExportsGlobal = factory($, SimpleModule));
 
-     });
 
-   } else if (typeof exports === 'object') {
 
-     // Node. Does not work with strict CommonJS, but
 
-     // only CommonJS-like enviroments that support module.exports,
 
-     // like Node.
 
-     module.exports = factory(require("jquery"),
 
-       require("simple-module"));
 
-   } else {
 
-     root.simple = root.simple || {};
 
-     root.simple['uploader'] = factory(jQuery,
 
-       SimpleModule);
 
-   }
 
- }(this, function ($, SimpleModule) {
 
- var Uploader, uploader,
 
-   __hasProp = {}.hasOwnProperty,
 
-   __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
 
- Uploader = (function(_super) {
 
-   __extends(Uploader, _super);
 
-   function Uploader() {
 
-     return Uploader.__super__.constructor.apply(this, arguments);
 
-   }
 
-   Uploader.count = 0;
 
-   Uploader.prototype.opts = {
 
-     url: '',
 
-     params: null,
 
-     fileKey: 'upload_file',
 
-     connectionCount: 3
 
-   };
 
-   Uploader.prototype._init = function() {
 
-     this.files = [];
 
-     this.queue = [];
 
-     this.id = ++Uploader.count;
 
-     this.on('uploadcomplete', (function(_this) {
 
-       return function(e, file) {
 
-         _this.files.splice($.inArray(file, _this.files), 1);
 
-         if (_this.queue.length > 0 && _this.files.length < _this.opts.connectionCount) {
 
-           return _this.upload(_this.queue.shift());
 
-         } else {
 
-           return _this.uploading = false;
 
-         }
 
-       };
 
-     })(this));
 
-     return $(window).on('beforeunload.uploader-' + this.id, (function(_this) {
 
-       return function(e) {
 
-         if (!_this.uploading) {
 
-           return;
 
-         }
 
-         e.originalEvent.returnValue = _this._t('leaveConfirm');
 
-         return _this._t('leaveConfirm');
 
-       };
 
-     })(this));
 
-   };
 
-   Uploader.prototype.generateId = (function() {
 
-     var id;
 
-     id = 0;
 
-     return function() {
 
-       return id += 1;
 
-     };
 
-   })();
 
-   Uploader.prototype.upload = function(file, opts) {
 
-     var f, key, _i, _len;
 
-     if (opts == null) {
 
-       opts = {};
 
-     }
 
-     if (file == null) {
 
-       return;
 
-     }
 
-     if ($.isArray(file)) {
 
-       for (_i = 0, _len = file.length; _i < _len; _i++) {
 
-         f = file[_i];
 
-         this.upload(f, opts);
 
-       }
 
-     } else if ($(file).is('input:file')) {
 
-       key = $(file).attr('name');
 
-       if (key) {
 
-         opts.fileKey = key;
 
-       }
 
-       this.upload($.makeArray($(file)[0].files), opts);
 
-     } else if (!file.id || !file.obj) {
 
-       file = this.getFile(file);
 
-     }
 
-     if (!(file && file.obj)) {
 
-       return;
 
-     }
 
-     $.extend(file, opts);
 
-     if (this.files.length >= this.opts.connectionCount) {
 
-       this.queue.push(file);
 
-       return;
 
-     }
 
-     if (this.triggerHandler('beforeupload', [file]) === false) {
 
-       return;
 
-     }
 
-     this.files.push(file);
 
-     this._xhrUpload(file);
 
-     return this.uploading = true;
 
-   };
 
-   Uploader.prototype.getFile = function(fileObj) {
 
-     var name, _ref, _ref1;
 
-     if (fileObj instanceof window.File || fileObj instanceof window.Blob) {
 
-       name = (_ref = fileObj.fileName) != null ? _ref : fileObj.name;
 
-     } else {
 
-       return null;
 
-     }
 
-     return {
 
-       id: this.generateId(),
 
-       url: this.opts.url,
 
-       params: this.opts.params,
 
-       fileKey: this.opts.fileKey,
 
-       name: name,
 
-       size: (_ref1 = fileObj.fileSize) != null ? _ref1 : fileObj.size,
 
-       ext: name ? name.split('.').pop().toLowerCase() : '',
 
-       obj: fileObj
 
-     };
 
-   };
 
-   Uploader.prototype._xhrUpload = function(file) {
 
-     var formData, k, v, _ref;
 
-     formData = new FormData();
 
-     formData.append(file.fileKey, file.obj);
 
-     formData.append("original_filename", file.name);
 
-     if (file.params) {
 
-       _ref = file.params;
 
-       for (k in _ref) {
 
-         v = _ref[k];
 
-         formData.append(k, v);
 
-       }
 
-     }
 
-     return file.xhr = $.ajax({
 
-       url: file.url,
 
-       data: formData,
 
-       dataType: 'json',
 
-       processData: false,
 
-       contentType: false,
 
-       type: 'POST',
 
-       headers: {
 
-         'X-File-Name': encodeURIComponent(file.name)
 
-       },
 
-       xhr: function() {
 
-         var req;
 
-         req = $.ajaxSettings.xhr();
 
-         if (req) {
 
-           req.upload.onprogress = (function(_this) {
 
-             return function(e) {
 
-               return _this.progress(e);
 
-             };
 
-           })(this);
 
-         }
 
-         return req;
 
-       },
 
-       progress: (function(_this) {
 
-         return function(e) {
 
-           if (!e.lengthComputable) {
 
-             return;
 
-           }
 
-           return _this.trigger('uploadprogress', [file, e.loaded, e.total]);
 
-         };
 
-       })(this),
 
-       error: (function(_this) {
 
-         return function(xhr, status, err) {
 
-           return _this.trigger('uploaderror', [file, xhr, status]);
 
-         };
 
-       })(this),
 
-       success: (function(_this) {
 
-         return function(result) {
 
-           _this.trigger('uploadprogress', [file, file.size, file.size]);
 
-           return _this.trigger('uploadsuccess', [file, result]);
 
-         };
 
-       })(this),
 
-       complete: (function(_this) {
 
-         return function(xhr, status) {
 
-           return _this.trigger('uploadcomplete', [file, xhr.responseText]);
 
-         };
 
-       })(this)
 
-     });
 
-   };
 
-   Uploader.prototype.cancel = function(file) {
 
-     var f, _i, _len, _ref;
 
-     if (!file.id) {
 
-       _ref = this.files;
 
-       for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
-         f = _ref[_i];
 
-         if (f.id === file * 1) {
 
-           file = f;
 
-           break;
 
-         }
 
-       }
 
-     }
 
-     this.trigger('uploadcancel', [file]);
 
-     if (file.xhr) {
 
-       file.xhr.abort();
 
-     }
 
-     return file.xhr = null;
 
-   };
 
-   Uploader.prototype.readImageFile = function(fileObj, callback) {
 
-     var fileReader, img;
 
-     if (!$.isFunction(callback)) {
 
-       return;
 
-     }
 
-     img = new Image();
 
-     img.onload = function() {
 
-       return callback(img);
 
-     };
 
-     img.onerror = function() {
 
-       return callback();
 
-     };
 
-     if (window.FileReader && FileReader.prototype.readAsDataURL && /^image/.test(fileObj.type)) {
 
-       fileReader = new FileReader();
 
-       fileReader.onload = function(e) {
 
-         return img.src = e.target.result;
 
-       };
 
-       return fileReader.readAsDataURL(fileObj);
 
-     } else {
 
-       return callback();
 
-     }
 
-   };
 
-   Uploader.prototype.destroy = function() {
 
-     var file, _i, _len, _ref;
 
-     this.queue.length = 0;
 
-     _ref = this.files;
 
-     for (_i = 0, _len = _ref.length; _i < _len; _i++) {
 
-       file = _ref[_i];
 
-       this.cancel(file);
 
-     }
 
-     $(window).off('.uploader-' + this.id);
 
-     return $(document).off('.uploader-' + this.id);
 
-   };
 
-   Uploader.i18n = {
 
-     'zh-CN': {
 
-       leaveConfirm: '正在上传文件,如果离开上传会自动取消'
 
-     }
 
-   };
 
-   Uploader.locale = 'zh-CN';
 
-   return Uploader;
 
- })(SimpleModule);
 
- uploader = function(opts) {
 
-   return new Uploader(opts);
 
- };
 
- return uploader;
 
- }));
 
 
  |