亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery插件jcrop+Fileapi完美實現圖片上傳+裁剪+預覽的代碼分享

2019-11-20 12:37:20
字體:
來源:轉載
供稿:網友

網頁端 裁剪圖片,不需要經過服務器。

這個是用 https://github.com/mailru/FileAPI 框架實現的。配合jcrop.

高級瀏覽器 使用 canvas 裁剪,ie6 7 8使用 flash過度。

核心代碼:

    var el = $('input').get(0);          seajs.use(['gallery/jcrop/0.9.12/jcrop.css','gallery/jcrop/0.9.12/jcrop.js'] ,function(){         FileAPI.event.on(el, 'change', function (evt){      var files = FileAPI.getFiles(evt); // Retrieve file list       FileAPI.filterFiles(files, function (file, info){        if( !/^image/.test(file.type)  ){          alert('圖片格式不正確');          return false;        }        else if(file.size > 20 * FileAPI.MB){          alert('圖片必須小于20M');           return false;        }        else{          return true;        }              }, function (files, rejected){        console.log(files);                 if( files.length ){          var file = files[0];           var img0 = FileAPI.Image(file);           var img1 = FileAPI.Image(file);           var ratio = 0;          FileAPI.getInfo(file, function (err, info) {  //get image ratio              if (!err) {                if (info.width > info.height) {                  ratio = info.width / 500;                }                else {                  ratio = info.height / 500;                }              }            });             img0.resize(500, 500, 'max')   //place image and register jcrop                .get(function(err, img) {                  $('#img2').empty();                  $('#img2').append($(img));                   $('#img2').children().Jcrop({                    aspectRatio: 1,                    bgColor: 'rgba(0,0,0,0.4)',                    onSelect: function(c) {                      img1.matrix.sx = c.x * ratio;                      img1.matrix.sy = c.y * ratio;                      img1.matrix.sw = c.w * ratio;                      img1.matrix.sh = c.h * ratio;                      img1.matrix.dw = 500;                      img1.matrix.dh = 500;                       img1.get(function(err, img) {                        // $('#img3').empty();                        //   $('#img3').append($(img));                        $('#img3').html($(img));                      });                     }                  });                });                  $('#btn').on('click',function(){                        FileAPI.upload({//                          url: '/testUpFile/upFile',                          // headers: { 'Content-Type': 'multipart/form-data' },                          files: { images: img1 },                          progress: function (evt){ /* ... */ },                          complete: function (err, xhr){ /* ... */                            //alert(xhr.responseText);                            console.log(xhr);                          }                        });                                });          }        });      });  });

完整代碼:

<!DOCTYPE html><html>  <head>    <title>TODO supply a title</title>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width">    <script src="./jquery.min.js"></script>      <script src="./jcrop/jquery.Jcrop.min.js"></script>    <link href="./jcrop/jquery.Jcrop.min.css" rel="stylesheet">  </head>  <style>        .upload-btn {  width: 130px;  height: 25px;  overflow: hidden;  position: relative;  border: 3px solid #06c;  border-radius: 5px;  background: #0cf;}  .upload-btn:hover {    background: #09f;  }  .upload-btn__txt {    z-index: 1;    position: relative;    color: #fff;    font-size: 18px;    font-family: "Helvetica Neue";    line-height: 24px;    text-align: center;    text-shadow: 0 1px 1px #000;  }  .upload-btn input {    top: -10px;    right: -40px;    z-index: 2;    position: absolute;    cursor: pointer;    opacity: 0;    filter: alpha(opacity=0);    font-size: 50px;  }      </style>     <body>    <div>    <!-- "js-fileapi-wrapper" -- required class -->    <div class="js-fileapi-wrapper upload-btn" id="choose">             <input name="files" type="file" multiple />      <button id="btn">上傳</button>    </div>    <div id="images">       <p style="margin-top: 40px;"></p>            <div id="img2" ></div>            <div id="img3"></div>    </div>  </div>  <script>window.FileAPI = { staticPath: './fileapi/' };</script>  <script src="./fileapi/FileAPI.min.js"></script>  <script>     var el = $('input').get(0);         FileAPI.event.on(el, 'change', function (evt){      var files = FileAPI.getFiles(evt); // Retrieve file list      FileAPI.filterFiles(files, function (file, info){        if( !/^image/.test(file.type)  ){          alert('圖片格式不正確');          return false;        }        else if(file.size > 20 * FileAPI.MB){          alert('圖片必須小于20M');           return false;        }        else{          return true;        }              }, function (files, rejected){                 if( files.length ){          var file = files[0];           var img0 = FileAPI.Image(file);           var img1 = FileAPI.Image(file);           var ratio = 0;          FileAPI.getInfo(file, function (err, info) {  //get image ratio              if (!err) {                if (info.width > info.height) {                  ratio = info.width / 500;                }                else {                  ratio = info.height / 500;                }              }            });            img0.resize(500, 500, 'max')   //place image and register jcrop                .get(function(err, img) {                  $('#img2').empty();                  $('#img2').append($(img));                  $('#img2').children().Jcrop({                    aspectRatio: 1,                    bgColor: 'rgba(0,0,0,0.4)',                    onSelect: function(c) {                      img1.matrix.sx = c.x * ratio;                      img1.matrix.sy = c.y * ratio;                      img1.matrix.sw = c.w * ratio;                      img1.matrix.sh = c.h * ratio;                      img1.matrix.dw = 500;                      img1.matrix.dh = 500;                      img1.get(function(err, img) {                        // $('#img3').empty();                        //   $('#img3').append($(img));                        $('#img3').html($(img));                      });                    }                  });                });                  $('#btn').on('click',function(){                        FileAPI.upload({                        url: '/testUpFile/upFile',                           files: { images: img1 },                          progress: function (evt){ /* ... */ },                          complete: function (err, xhr){ /* ... */                            //alert(xhr.responseText);                           }                        });                                      });          }        });      });    </script>  </body></html>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品美女www爽爽爽视频| 亚洲黄色有码视频| 国产精品69av| 国产精品爽黄69| 精品亚洲一区二区| 日韩美女视频免费看| 久久艳片www.17c.com| 久久精品最新地址| 欧美国产日韩在线| 人体精品一二三区| 国产免费久久av| 亚洲开心激情网| 亚洲品质视频自拍网| 久久免费福利视频| 91精品国产综合久久香蕉最新版| 疯狂做受xxxx欧美肥白少妇| 国产精品jizz在线观看麻豆| 97超级碰碰人国产在线观看| 亚洲自拍偷拍在线| 成人午夜激情免费视频| 久久久久久国产| 国产精品一区二区久久久久| 日韩最新在线视频| 亚洲乱码一区av黑人高潮| 亚洲国内精品在线| 亚洲天堂成人在线视频| 一区二区亚洲精品国产| 亚洲欧洲一区二区三区久久| 亚洲精品网站在线播放gif| 日韩精品在线第一页| 日韩欧美aaa| 伊人av综合网| 国产精品www色诱视频| 国产一区二区精品丝袜| 免费91麻豆精品国产自产在线观看| 国产69久久精品成人看| 久久夜色精品国产欧美乱| 亚洲精品电影在线| 欧美性一区二区三区| 精品久久久久久国产| 狠狠躁夜夜躁人人爽天天天天97| 2019中文字幕在线| 日韩欧美亚洲综合| 91精品综合久久久久久五月天| 成人国产在线激情| 欧美成人免费全部观看天天性色| 日韩大片免费观看视频播放| 亚洲最新av网址| 日韩在线一区二区三区免费视频| 日韩av一卡二卡| 久久精品影视伊人网| 亚洲电影av在线| 久久精品国亚洲| 欧美亚洲第一页| 日韩欧美在线视频观看| 欧美贵妇videos办公室| 日韩高清av一区二区三区| 国产日韩中文字幕在线| 高清日韩电视剧大全免费播放在线观看| 97色在线观看免费视频| 日韩在线激情视频| 欧美色欧美亚洲高清在线视频| 久久久久成人网| 亚洲成色www8888| 亚洲精品99久久久久中文字幕| 成人黄色免费片| 97色在线播放视频| 午夜精品蜜臀一区二区三区免费| 日韩成人在线视频观看| 亚洲免费中文字幕| 欧美高清视频免费观看| 91系列在线观看| 黑人巨大精品欧美一区二区一视频| 久久久久中文字幕2018| 亚洲一区二区在线播放| 亚洲综合色av| 欧美精品在线免费| 91免费看片在线| 亚洲国产小视频| 91爱爱小视频k| 日韩**中文字幕毛片| 欧美精品久久久久久久| 91久久精品日日躁夜夜躁国产| 精品国产拍在线观看| 欧美一级视频免费在线观看| 国产日韩在线亚洲字幕中文| 久久久伊人日本| 国产欧美 在线欧美| 日韩精品免费综合视频在线播放| 91精品国产沙发| 精品久久久久人成| 亚洲自拍偷拍在线| 国产成一区二区| 欧美性猛xxx| 伊人男人综合视频网| 国产欧美日韩精品专区| 欧洲永久精品大片ww免费漫画| 精品久久中文字幕久久av| 欧美不卡视频一区发布| 91国产美女视频| 中文字幕亚洲综合久久| 97免费视频在线| 国产丝袜一区视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 在线观看精品国产视频| 韩国三级电影久久久久久| www.久久久久| 国产99久久久欧美黑人| 91丨九色丨国产在线| 91精品视频一区| 一本久久综合亚洲鲁鲁| 国产成人精品免高潮在线观看| 久热精品在线视频| 一区二区亚洲精品国产| 亚洲男女自偷自拍图片另类| 日韩欧美一区二区在线| 国产欧美日韩视频| 中文字幕欧美精品在线| 欧美丰满少妇xxxxx做受| 久久久www成人免费精品| 久久久久久国产精品久久| 亚洲精品wwww| 欧美日韩亚洲精品一区二区三区| 日韩在线观看免费网站| 欧美俄罗斯性视频| 5278欧美一区二区三区| 中文字幕亚洲一区在线观看| 国产剧情久久久久久| 欧美大片在线看免费观看| 97在线视频一区| 日韩国产一区三区| 国产精品99久久久久久白浆小说| 日韩亚洲一区二区| 91视频九色网站| 69视频在线免费观看| 欧美日韩激情视频8区| 欧美日韩成人黄色| 国产精品99蜜臀久久不卡二区| 国产成人亚洲综合91| 国产91色在线| 久久亚洲国产精品成人av秋霞| 中文字幕亚洲欧美日韩在线不卡| 4444欧美成人kkkk| 亚洲国产精彩中文乱码av| 国产精欧美一区二区三区| 97成人精品区在线播放| 一区二区中文字幕| 久久777国产线看观看精品| 亚洲精品自拍偷拍| 久久91超碰青草是什么| 欧美日韩国产二区| 国产日韩欧美影视| 日韩精品视频观看| 91欧美精品成人综合在线观看| 深夜成人在线观看| 国产精品一区二区三区毛片淫片| 国产精品亚洲网站| 亚洲另类欧美自拍| 久久香蕉国产线看观看av| 欧美成人免费全部观看天天性色| 国产欧美日韩中文字幕在线| 日韩中文字幕在线| 国产精品久久久久久婷婷天堂| 91精品视频在线播放|