[关闭]
@Wangww0925 2019-08-07T07:56:45.000000Z 字数 1223 阅读 168

input上传图片

js


  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <input type="file">
  9. </body>
  10. </html>
  11. <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  12. <script>
  13. // input上传图片
  14. $("input").change(function(e){
  15. var that = this
  16. if(that.value){
  17. if(!/.(gif|jpg|jpeg|png|GIF|JPG|png)$/.test(that.value)){
  18. alert("图片类型必须是.gif,jpeg,jpg,png中的一种");
  19. $(that).val("");
  20. return false
  21. }
  22. var reader = new FileReader();
  23. reader.onload = (function (file) {
  24. return function (e) {
  25. var url = this.result;
  26. // 超出1.5Mb大小需压缩
  27. if (url.length > 1572864) {
  28. var img = new Image();
  29. img.src = url;
  30. img.onload = function () {
  31. //生成比例
  32. var width = img.width, height = img.height;
  33. //计算缩放比例
  34. var rate = 1;
  35. var maxLen = 1000;
  36. if (width >= height) {
  37. if (width > maxLen) {
  38. rate = maxLen / width;
  39. }
  40. } else {
  41. if (height > maxLen) {
  42. rate = maxLen / height;
  43. }
  44. };
  45. img.width = width * rate;
  46. img.height = height * rate;
  47. //生成canvas
  48. var canvas = document.createElement("canvas");
  49. var ctx = canvas.getContext("2d");
  50. canvas.width = img.width;
  51. canvas.height = img.height;
  52. ctx.drawImage(img, 0, 0, img.width, img.height);
  53. var base64 = canvas.toDataURL('image/jpeg', 0.9);
  54. console.log("超出1.5Mb大小需压缩", base64); // 这个就是base64的数据了
  55. };
  56. } else {
  57. console.log(this.result); // 这个就是base64的数据了
  58. }
  59. }
  60. })(e.target.files[0]);
  61. reader.readAsDataURL(e.target.files[0]);
  62. }
  63. })
  64. </script>

作者 wendy
2019 年 7月 30日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注