main.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * 图片base 64编码
  3. * @author xianliezhao
  4. */
  5. var ImageBase64 = (function () {
  6. var sizeFormat = function (num) {
  7. if(isNaN(num)) {
  8. return '暂无数据';
  9. }
  10. num = +num;
  11. if (num < 1024) {
  12. return num + ' B';
  13. } else if (num < 1024 * 1024) {
  14. return (num / 1024).toFixed(2) + ' KB';
  15. } else {
  16. return (num / 1024 / 1024).toFixed(2) + ' MB';
  17. }
  18. };
  19. var _getDataUri = function (file) {
  20. var reader = new FileReader();
  21. reader.onload = function (evt) {
  22. $('#result').val(evt.target.result);
  23. $('#preview').attr('src', evt.target.result).show();
  24. $('td .x-panel').css('background-image', 'none');
  25. $('#sizeOri').html(sizeFormat(file.size));
  26. $('#sizeBase').html(sizeFormat(evt.target.result.length));
  27. };
  28. reader.readAsDataURL(file);
  29. };
  30. var _bindEvent = function () {
  31. $('textarea').bind('click', function (e) {
  32. this.select();
  33. });
  34. var $file = $('#file').change(function (e) {
  35. if (this.files.length) {
  36. _getDataUri(this.files[0]);
  37. this.value = '';
  38. }
  39. });
  40. $('#upload').click(function (e) {
  41. e.preventDefault();
  42. $file.trigger('click');
  43. });
  44. //监听paste事件
  45. document.onpaste = function (event) {
  46. var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  47. for (var index in items) {
  48. var item = items[index];
  49. if (/image\//.test(item.type)) {
  50. var file = item.getAsFile();
  51. _getDataUri(file);
  52. break;
  53. }
  54. }
  55. };
  56. $(document).bind('drop', function (e) {
  57. e.preventDefault();
  58. e.stopPropagation();
  59. var files = e.originalEvent.dataTransfer.files;
  60. if (files.length) {
  61. if (/image\//.test(files[0].type)) {
  62. _getDataUri(files[0]);
  63. } else {
  64. alert('请选择图片文件!');
  65. }
  66. }
  67. }).bind('dragover', function (e) {
  68. e.preventDefault();
  69. e.stopPropagation();
  70. });
  71. };
  72. $(function () {
  73. _bindEvent();
  74. });
  75. })();