<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 21:56:56
        文檔

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/
        推薦度:
        導讀基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/

        具體代碼如下所示:

        <!DOCTYPE html>
        <html>
        <head>
         <meta charset="UTF-8">
         <title>前端壓縮上傳圖片</title>
         <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
        </head>
        <body>
         <input type="file" id="picFile" onchange="readFile(this)" />
         <img id="img" src="" alt="" />
         <script>
         function readFile(obj) {
         var file = obj.files[0];
         //判斷類型是不是圖片 
         if (!/image\/\w+/.test(file.type)) {
         alert("請確保文件為圖像類型");
         return false;
         }
         var reader = new FileReader();
         reader.readAsDataURL(file);
         reader.onload = function(e) {
         dealImage(this.result, { quality: 0.5 }, function(base) {
         //調(diào)用
         var blob = dataURLtoBlob(base);
         var newFile = new File([blob], file.name, { type: file.type });
         console.log(newFile)
         let r = new FileReader(); //本地預(yù)覽
         r.onload = function() {
         $('#img').attr("src", r.result);;
         }
         r.readAsDataURL(newFile); //Base64
         // upload(newFile);
         });
         }
         }
         //將base64轉(zhuǎn)換為blob
         function dataURLtoBlob(dataurl) {
         var arr = dataurl.split(','),
         mime = arr[0].match(/:(.*?);/)[1],
         bstr = atob(arr[1]),
         n = bstr.length,
         u8arr = new Uint8Array(n);
         while (n--) {
         u8arr[n] = bstr.charCodeAt(n);
         }
         return new Blob([u8arr], { type: mime });
         }
         function upload(file) {
         var that = this;
         // 創(chuàng)建form對象
         let param = new FormData();
         // 通過append向form對象添加數(shù)據(jù)
         param.append('img', file);
         // 文件大小
         param.append('size', file.size);
         for (var n in that.params) {
         param.append(n, that.params[n]);
         }
         // 創(chuàng)建ajax
         var xhr = new XMLHttpRequest();
         xhr.onload = function() {
         console.log(xhr.responseText)
         }
         xhr.open("POST", "yourapi", true);
         // 發(fā)送表單數(shù)據(jù)
         xhr.send(param);
         }
         /**
         * 圖片壓縮,默認同比例壓縮
         * @param {Object} path
         * pc端傳入的路徑可以為相對路徑,但是在移動端上必須傳入的路徑是照相圖片儲存的絕對路徑
         * @param {Object} obj
         * obj 對象 有 width, height, quality(0-1)
         * @param {Object} callback
         * 回調(diào)函數(shù)有一個參數(shù),base64的字符串數(shù)據(jù)
         */
         function dealImage(path, obj, callback) {
         var img = new Image();
         img.src = path;
         img.onload = function() {
         var that = this;
         // 默認按比例壓縮
         var w = that.width,
         h = that.height,
         scale = w / h;
         w = obj.width || w;
         h = obj.height || (w / scale);
         var quality = obj.quality || 0.7; // 默認圖片質(zhì)量為0.7
         //生成canvas
         var canvas = document.createElement('canvas');
         var ctx = canvas.getContext('2d');
         // 創(chuàng)建屬性節(jié)點
         var anw = document.createAttribute("width");
         anw.nodeValue = w;
         var anh = document.createAttribute("height");
         anh.nodeValue = h;
         canvas.setAttributeNode(anw);
         canvas.setAttributeNode(anh);
         ctx.drawImage(that, 0, 0, w, h);
         // 圖像質(zhì)量
         if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
         quality = obj.quality;
         }
         // quality值越小,所繪制出的圖像越模糊
         var base64 = canvas.toDataURL('image/jpeg', quality);
         // 回調(diào)函數(shù)返回base64的值
         callback(base64);
         }
         }
         </script>
        </body>
        </html>

        總結(jié)

        以上所述是小編給大家介紹的基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
        如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼

        基于JS實現(xiàn)前端壓縮上傳圖片的實例代碼:具體代碼如下所示: <!DOCTYPE html> <html> <head> <meta charset=UTF-8> <title>前端壓縮上傳圖片</title> <script src=https://cdn.bootcss.com/jquery/
        推薦度:
        標簽: 圖片 上傳 js
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 女人裸身j部免费视频无遮挡| 亚洲天天做日日做天天看| 亚洲精品国产suv一区88| 男人的好看免费观看在线视频 | 鲁大师在线影院免费观看| 亚洲色精品aⅴ一区区三区| 九九99热免费最新版| 中文亚洲AV片不卡在线观看| 国产在线观看xxxx免费| 亚洲精品成人无码中文毛片不卡| 久久国产乱子伦精品免费强| 久久丫精品国产亚洲av| 永久免费的网站在线观看| 久久久久久亚洲精品影院| 永久免费AV无码网站在线观看| 婷婷亚洲综合五月天小说在线| 亚洲国产精品狼友中文久久久| h视频在线免费观看| 亚洲成AV人片在WWW色猫咪| 99在线观看视频免费| 伊人久久五月丁香综合中文亚洲| 日韩中文字幕在线免费观看| 色爽黄1000部免费软件下载| 亚洲高清国产AV拍精品青青草原| 久草视频在线免费| 看成年女人免费午夜视频| 久久91亚洲人成电影网站| 久久九九兔免费精品6| 精品国产_亚洲人成在线| 亚洲色婷婷六月亚洲婷婷6月| 青娱分类视频精品免费2| 综合偷自拍亚洲乱中文字幕| 亚洲成AV人在线观看天堂无码| 1024免费福利永久观看网站| 美女被羞羞网站免费下载| 亚洲成色在线综合网站| 国产精品无码免费视频二三区| 东方aⅴ免费观看久久av| 亚洲欧美成人综合久久久| 自拍偷自拍亚洲精品情侣| 毛片A级毛片免费播放|