base64转文件

我就是我 2022-05-29 06:26 967阅读 0赞

base64转文件

  1. /** * 文件流base64字符串后轉成文件 * @param {string} base64Data 數據 * @param {string} contentType 文件類型 */
  2. function base64ToToBlob(base64Data, contentType) {
  3. var bytes64 = atob(base64Data);
  4. var byteData = new ArrayBuffer(bytes64.length);//内存区域
  5. var array = new Uint8Array(byteData);//8位无符号整数
  6. for (var i = 0; i < bytes64.length; i++) {
  7. array[i] = bytes64.charCodeAt(i);//字符的 Unicode 编码
  8. }
  9. return new Blob([byteData], { type: contentType });
  10. }
  11. /** * blob保存为文件 * @param {Blob} blob數據 * @param {string} filename文件名 */
  12. function saveAs(blob, fileName) {
  13. if (window.navigator.msSaveOrOpenBlob) {
  14. navigator.msSaveBlob(blob, fileName);
  15. } else {
  16. var link = document.createElement('a');
  17. link.href = window.URL.createObjectURL(blob);
  18. link.download = fileName;
  19. link.click();
  20. window.URL.revokeObjectURL(link.href);
  21. }
  22. }

execl转base64服务端实现

  1. HSSFWorkbook workbook = new HSSFWorkbook();
  2. //一系列转换操作
  3. using (MemoryStream ms = new MemoryStream())
  4. {
  5. workbook.Write(ms);
  6. ms.Flush();
  7. ms.Position = 0;
  8. //sheet.Dispose();
  9. // workbook.Dispose();//一般只用写这一个就OK了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheet
  10. return ms;
  11. }
  12. //再通过以下语句转成base64
  13. Convert.ToBase64String(ms.ToArray(), Base64FormattingOptions.None);

其他相关js

  1. /* *getFileBase64(file, fnc) //获取文件对象的base64 * *md5(string) //计算字符串md5 */
  2. function getFileBase64(file, fnc) {
  3. var reader = new FileReader();
  4. reader.readAsDataURL(file);
  5. reader.onload = function (e) {
  6. if (typeof fnc === "function") {
  7. fnc(e.target.result)
  8. }
  9. };
  10. }
  11. function md5(string) {
  12. function RotateLeft(lValue, iShiftBits) {
  13. return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
  14. }
  15. function AddUnsigned(lX, lY) {
  16. var lX4, lY4, lX8, lY8, lResult;
  17. lX8 = (lX & 0x80000000);
  18. lY8 = (lY & 0x80000000);
  19. lX4 = (lX & 0x40000000);
  20. lY4 = (lY & 0x40000000);
  21. lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
  22. if (lX4 & lY4) {
  23. return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
  24. }
  25. if (lX4 | lY4) {
  26. if (lResult & 0x40000000) {
  27. return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
  28. } else {
  29. return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
  30. }
  31. } else {
  32. return (lResult ^ lX8 ^ lY8);
  33. }
  34. }
  35. function F(x, y, z) {
  36. return (x & y) | ((~x) & z);
  37. }
  38. function G(x, y, z) {
  39. return (x & z) | (y & (~z));
  40. }
  41. function H(x, y, z) {
  42. return (x ^ y ^ z);
  43. }
  44. function I(x, y, z) {
  45. return (y ^ (x | (~z)));
  46. }
  47. function FF(a, b, c, d, x, s, ac) {
  48. a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
  49. return AddUnsigned(RotateLeft(a, s), b);
  50. }
  51. function GG(a, b, c, d, x, s, ac) {
  52. a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
  53. return AddUnsigned(RotateLeft(a, s), b);
  54. }
  55. function HH(a, b, c, d, x, s, ac) {
  56. a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
  57. return AddUnsigned(RotateLeft(a, s), b);
  58. }
  59. function II(a, b, c, d, x, s, ac) {
  60. a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
  61. return AddUnsigned(RotateLeft(a, s), b);
  62. }
  63. function ConvertToWordArray(string) {
  64. var lWordCount;
  65. var lMessageLength = string.length;
  66. var lNumberOfWords_temp1 = lMessageLength + 8;
  67. var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
  68. var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
  69. var lWordArray = Array(lNumberOfWords - 1);
  70. var lBytePosition = 0;
  71. var lByteCount = 0;
  72. while (lByteCount < lMessageLength) {
  73. lWordCount = (lByteCount - (lByteCount % 4)) / 4;
  74. lBytePosition = (lByteCount % 4) * 8;
  75. lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
  76. lByteCount++;
  77. }
  78. lWordCount = (lByteCount - (lByteCount % 4)) / 4;
  79. lBytePosition = (lByteCount % 4) * 8;
  80. lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
  81. lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
  82. lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
  83. return lWordArray;
  84. }
  85. function WordToHex(lValue) {
  86. var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount;
  87. for (lCount = 0; lCount <= 3; lCount++) {
  88. lByte = (lValue >>> (lCount * 8)) & 255;
  89. WordToHexValue_temp = "0" + lByte.toString(16);
  90. WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
  91. }
  92. return WordToHexValue;
  93. }
  94. function Utf8Encode(string) {
  95. var utftext = "";
  96. for (var n = 0; n < string.length; n++) {
  97. var c = string.charCodeAt(n);
  98. if (c < 128) {
  99. utftext += String.fromCharCode(c);
  100. } else if ((c > 127) && (c < 2048)) {
  101. utftext += String.fromCharCode((c >> 6) | 192);
  102. utftext += String.fromCharCode((c & 63) | 128);
  103. } else {
  104. utftext += String.fromCharCode((c >> 12) | 224);
  105. utftext += String.fromCharCode(((c >> 6) & 63) | 128);
  106. utftext += String.fromCharCode((c & 63) | 128);
  107. }
  108. }
  109. return utftext;
  110. }
  111. var x = Array();
  112. var k, AA, BB, CC, DD, a, b, c, d;
  113. var S11 = 7, S12 = 12, S13 = 17, S14 = 22;
  114. var S21 = 5, S22 = 9, S23 = 14, S24 = 20;
  115. var S31 = 4, S32 = 11, S33 = 16, S34 = 23;
  116. var S41 = 6, S42 = 10, S43 = 15, S44 = 21;
  117. string = Utf8Encode(string);
  118. x = ConvertToWordArray(string);
  119. a = 0x67452301;
  120. b = 0xEFCDAB89;
  121. c = 0x98BADCFE;
  122. d = 0x10325476;
  123. for (k = 0; k < x.length; k += 16) {
  124. AA = a;
  125. BB = b;
  126. CC = c;
  127. DD = d;
  128. a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
  129. d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
  130. c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
  131. b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
  132. a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
  133. d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
  134. c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
  135. b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
  136. a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
  137. d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
  138. c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
  139. b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
  140. a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
  141. d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
  142. c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
  143. b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
  144. a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
  145. d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
  146. c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
  147. b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
  148. a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
  149. d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
  150. c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
  151. b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
  152. a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
  153. d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
  154. c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
  155. b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
  156. a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
  157. d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
  158. c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
  159. b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
  160. a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
  161. d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
  162. c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
  163. b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
  164. a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
  165. d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
  166. c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
  167. b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
  168. a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
  169. d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
  170. c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
  171. b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
  172. a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
  173. d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
  174. c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
  175. b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
  176. a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
  177. d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
  178. c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
  179. b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
  180. a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
  181. d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
  182. c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
  183. b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
  184. a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
  185. d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
  186. c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
  187. b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
  188. a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
  189. d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
  190. c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
  191. b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
  192. a = AddUnsigned(a, AA);
  193. b = AddUnsigned(b, BB);
  194. c = AddUnsigned(c, CC);
  195. d = AddUnsigned(d, DD);
  196. }
  197. var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
  198. return temp.toLowerCase();
  199. }

发表评论

表情:
评论列表 (有 0 条评论,967人围观)

还没有评论,来说两句吧...

相关阅读

    相关 base64文件MultipartFile文件

    在一些项目中,上传图片或者文件过大,这个时候我们就要选择压缩文件,压缩到我们指定的范围内在上传到服务器,当然压缩也是可以放到服务器进行操作的,但是考虑到前端传输时间问题,所以我