uploader.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. define(function () {
  2. return function (element, InitHandler, UploadedHandler, CompleteHandler) {
  3. var exts = $(element).data('type') || '*';
  4. var uptype = $(element).attr('data-uptype') || '';
  5. // 检查可以上传的文件后缀
  6. $.form.load('?s=admin/api.plugs/check', {exts: exts, uptype: uptype}, 'post', function (ret, options) {
  7. options = {url: ret.data.data.url, exts: ret.data.exts, acceptMime: ret.data.mime, data: ret.data.data};
  8. if (exts.indexOf('*') > -1) delete options.exts, delete options.acceptMime;
  9. return renderUploader(options), false;
  10. }, false, false, 0);
  11. // 初始化上传组件
  12. function renderUploader(options, headers) {
  13. console.log(options)
  14. this.options = {
  15. proindex: 0,
  16. elem: element,
  17. headers: headers || {},
  18. multiple: $(element).attr('data-multiple') > 0,
  19. before: function () {
  20. this.proindex = $.msg.loading('上传进度 <span data-upload-progress>0%</span>');
  21. },
  22. progress: function (n) {
  23. $('[data-upload-progress]').html(n + '%');
  24. },
  25. done: function (ret) {
  26. this.multiple || $.msg.close(this.proindex);
  27. if (ret.uploaded) {
  28. if (typeof UploadedHandler === 'function') UploadedHandler(ret.url);
  29. else $('[name="' + ($(element).data('field') || 'file') + '"]').val(ret.url).trigger('change');
  30. } else {
  31. $.msg.error(ret.info || ret.error.message || '文件上传出错!');
  32. }
  33. },
  34. allDone: function () {
  35. $.msg.close(this.proindex), $(element).html($(element).data('html'));
  36. if (typeof CompleteHandler === 'function') CompleteHandler();
  37. }
  38. };
  39. layui.upload.render($.extend(this.options, options));
  40. };
  41. };
  42. });