test_img_enc.html 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>FileReader实现文件上传</title>
  7. <style>
  8. body {
  9. width: 20%;
  10. margin: 100px auto;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <input type="file" onchange="handleFileChange(this)" />
  16. <br />
  17. <br />
  18. <script src="dart_js.js"></script>
  19. <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.24.0/axios.min.js"></script>
  20. <script>
  21. let key = "c2AkIbxQLQSToEZQ"
  22. function uint8ArrayToArray(uint8Array) {
  23. var array = [];
  24. for (var i = 0; i < uint8Array.byteLength; i++) {
  25. array[i] = uint8Array[i];
  26. }
  27. return array;
  28. }
  29. function handleFileChange(instance) {
  30. const file = instance.files[0];
  31. const reader = new FileReader();
  32. reader.readAsArrayBuffer(file);
  33. reader.onload = (e) => {
  34. const buf = e.target.result;
  35. let data = uint8ArrayToArray(new Uint8Array(buf))
  36. let encData = dx_encrypt(data, key).o;
  37. const fileRes = axios.post("/upload", { fileData: encData, fileName: file.name });
  38. };
  39. }
  40. </script>
  41. </body>
  42. </html>