整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          圖片上傳組件WebUploader圖片被壓縮解決方案

          ebUploader是由Baidu WebFE(FEX)團隊開發的一個簡單的以HTML5為主,FLASH為輔的現代文件上傳組件。在現代的瀏覽器里面能充分發揮HTML5的優勢,同時又不摒棄主流IE瀏覽器,沿用原來的FLASH運行時,兼容IE6+,iOS 6+, android 4+。兩套運行時,同樣的調用方式,可供用戶任意選用。采用大文件分片并發上傳,極大的提高了文件上傳效率。

          ShopWind開源電商系統完美的整合了WebUploader上傳組件,使得在商品發布、文章發表時候編輯器中能很方便的插入圖片,效果如下圖所示:

          WebUploader圖片上傳組件上傳圖片時候默認對超過1600px高度的圖片進行寬高等比例壓縮,如果是要上傳長圖又不想讓組件把圖片壓縮需要做些修改。

          WebUploader圖片上傳組件中預留compress參數, 參數類型Object ,可選。這個參數是配置壓縮的圖片的選項。如果此選項為false, 則圖片在上傳前不進行壓縮。

          解決辦法:打開文件frontend\controllers\My_goodsController.php,搜索“build_upload” 在create方法中做如下的修改:增加compress 參數,值為false。

          件拖拽上傳

          使用HTML5的文件API, 可以將操作系統中的文件拖放到瀏覽器的指定區域, 實現文件上傳到服務器。本文將結合實例講解HTML5+jQuery+PHP實現拖拽上傳圖片的過程, 來看下HTML5的魅力吧。

          HTML

          我們在頁面中放置一個拖拽區域#drop_area, 即接收拖拽的區域, #preview用來預覽拖拽上傳的圖片信息。

          <div id="drop_area">將圖片拖拽到此區域</div>
          <div id="preview"></div>

          Javascript

          要想實現拖拽, 頁面需要阻止瀏覽器默認行為, 即四個事件(拖離、拖后放、拖進、拖來拖去), 因為我們要阻止瀏覽器默認將圖片打開的行為, 這里我們使用jQuery來完成。

          $(function(){
          //阻止瀏覽器默認行。
          $(document).on({
              dragleave:function(e){ //拖離
              e.preventDefault();
          },
          drop:function(e){ //拖后放
              e.preventDefault();
          },
          dragenter:function(e){ //拖進
              e.preventDefault();
          },
          dragover:function(e){ //拖來拖去
              e.preventDefault();
          }
          });
          ...
          });

          接下來我們來了解下文件API。HTML5的文件API有一個FileList接口, 它可以通過e.dataTransfer.files拖拽事件傳遞的文件信息, 獲取本地文件列表信息

          var fileList = e.dataTransfer.files;

          在本例中, 我們用javascript來偵聽drop事件, 首先要判斷拖入的文件是否符合要求, 包括圖片類型、大小等, 然后獲取本地圖片信息, 實現預覽, 最后上傳。

          $(function(){
          /// ...接上部分
          var box = document.getElementById('drop_area'); //拖拽區域
          box.addEventListener("drop",function(e){
          e.preventDefault(); //取消默認瀏覽器拖拽效果
          var fileList = e.dataTransfer.files; //獲取文件對象
          //檢測是否是拖拽文件到頁面的操作
          if(fileList.length == 0){
              return false;
          }
          //檢測文件是不是圖片
          if(fileList[0].type.indexOf('image') === -1){
          alert("您拖的不是圖片!");
          return false;
          }
          
          //拖拉圖片到瀏覽器,可以實現預覽功能
          var img = window.URL.createObjectURL(fileList[0]);
          var filename = fileList[0].name; //圖片名稱
          var filesize = Math.floor((fileList[0].size)/1024);
          if(filesize>500){
          alert("上傳大小不能超過500K.");
          return false;
          }
          var str = "<img src='"+img+"'><p>圖片名稱:"+filename+"</p><p>大小:"+filesize+"KB</p>";
          $("#preview").html(str);
          
          //上傳
          xhr = new XMLHttpRequest();
          xhr.open("post", "upload.php", true);
          xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
          
          var fd = new FormData();
          fd.append('mypic', fileList[0]);
          
          xhr.send(fd);
          },false);
          });

          我們用FormData模擬表單數據, 直接將數據append到formdata對象中, 實現了ajax上傳。

          PHP

          upload.php用于接收上傳的文件信息, 完成上傳, 實現代碼如下:

          <?php
          $mypic = $_FILES["mypic"];
          if(!empty($mypic)){
          $picname = $_FILES['mypic']['name'];
          $picsize = $_FILES['mypic']['size'];
          if ($picsize > 512000) {
          echo '圖片大小不能超過500k';
          exit;
          }
          $type = strstr($picname, '.');
          if ($type != ".gif" && $type != ".jpg") {
          echo '圖片格式不對!';
          exit;
          }
          $pics = 'helloweba' . $type;
          //上傳路徑
          $pic_path = "pics/". $pics;
          move_uploaded_file($mypic["tmp_name"],$pic_path);
          }
          ?>

          下邊這幾句可以沒有

          <meta charset="utf-8">
          <form action="" method="post" enctype="multipart/form-data">
          <input type="file" name="mypic">
          <input type="submit" value="上傳">
          </form>

          最后總結下HTML5實現拖拽上傳的技術要點:

          1、監聽拖拽:監聽頁面元素的拖拽事件, 包括:dragenter、dragover、dragleave和drop, 一定要將dragover的默認事件取消掉, 不然無法觸發drop事件。如需拖拽頁面里的元素, 需要給其添加屬性draggable=”true”;

          2、獲取拖拽文件:在drop事件觸發后通過e.dataTransfer.files獲取拖拽文件列表, .length屬性獲取文件數量, .type屬性獲取文件類型。

          3、讀取圖片數據并添加預覽圖。

          4、發送圖片數據:使用FormData模擬表單數據AJAX提交文件流。

          UE項目中的TINYMCE富文本編輯器如何從WORD中粘貼圖片上傳到七牛云,富文本插件TINYMCE使用CTRL+V粘貼圖片上傳到遠程服務器,關于tinymce粘貼圖片,粘貼word,一鍵導入word,粘貼word內容,網上能找到的方案不是特別多,都是通過HTML5提供的API來實現的。

          粘貼word內容,粘貼word圖片,粘貼word圖文,

          之前在網上也找過相關的資料,論壇里面也有網友交流過,也加過一些交流群,但是幾乎都不能夠提供成熟完整的商業解決方案。

          大部分文章和回復都不太靠譜,基本上都是沒有實際的項目應用經驗。

          復制word內容然后粘貼到tinymce富文本編輯器中,word里面的圖片自動上傳到服務器中,返回圖片和文字HTML,保留word文字的樣式,字體大小,字體顏色。

          可以用快捷鍵(Ctrl+V)操作,

          用戶發布新聞的時候是從word里面復制圖片和文字,然后將word圖文內容粘貼到web富文本編輯器中,希望能夠將word的圖片自動上傳到服務器中,服務器地址能夠自定義,

          后端的話需要支持任意開發語言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于標準HTTP協議的都要支持。如果能夠不裝控件最好,下載示例

          https://gitee.com/xproer/wordpaster-vue-tinymce5

          1.復制插件文件

          安裝jquery

          npm install jquery

          2.在組件中引入

          添加工具欄


          在線代碼:https://gitee.com/xproer/wordpaster-vue-tinymce5/blob/master/src/components/tinymce.vue#L44

          添加插件

          在線代碼:https://gitee.com/xproer/wordpaster-vue-tinymce5/blob/master/src/components/tinymce.vue

          初始化wordpaster組件

          3.在頁面中引入組件

          整合效果:

          訂閱版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAw70JsA8m
          政企版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuqJtN30#/

          年費版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwFouDIB4#/

          OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwV00mQSY

          產品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwz13B5Tr


          主站蜘蛛池模板: 精品一区二区三区视频在线观看 | 日本丰满少妇一区二区三区| 国产亚洲日韩一区二区三区 | 人成精品视频三区二区一区| 国产成人亚洲综合一区| 久久AAAA片一区二区| 国产一区二区影院| 女人18毛片a级毛片一区二区| 久久无码人妻一区二区三区午夜| 日韩精品无码一区二区视频| 国产在线精品一区免费香蕉 | 怡红院一区二区三区| 狠狠色综合一区二区| 国产精品视频分类一区| 中文字幕av日韩精品一区二区 | 久久久久一区二区三区| 免费av一区二区三区| 精品一区二区久久| 国产伦精品一区二区三区女| 一区二区免费在线观看| 国产在线一区二区三区av| 国产精品一级香蕉一区| 四虎在线观看一区二区| 日本一区中文字幕日本一二三区视频| 午夜福利无码一区二区| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 内射女校花一区二区三区| 久久精品一区二区影院 | 国产人妖视频一区二区破除| 日本在线视频一区| 国产高清不卡一区二区| 日韩中文字幕精品免费一区| 午夜视频久久久久一区| 日韩精品在线一区二区| 亚洲色一区二区三区四区 | 中文字幕日韩一区二区三区不卡| 国产免费一区二区三区VR| 国产a∨精品一区二区三区不卡| 亚洲第一区二区快射影院| 国产福利电影一区二区三区久久久久成人精品综合 | 国产AⅤ精品一区二区三区久久|