Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲欧美日韩在线线精品,中文字幕精品一区二区日本大胸 ,国产天堂亚洲精品

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          鏈路追蹤詳解(五):鏈路傳播 Header 詳解

          路追蹤作為分布式系統(tǒng)中不可或缺的一部分,可以幫助開發(fā)和運(yùn)維人員了解請求在系統(tǒng)中的流轉(zhuǎn)鏈路,快速定位問題和識別性能瓶頸。而鏈路傳播 Header 是實(shí)現(xiàn)跨服務(wù)調(diào)用鏈跟蹤的關(guān)鍵機(jī)制,通過鏈路傳播 Header,使得跟蹤信息在不同服務(wù)間的透明傳遞,從而構(gòu)建出完整的請求鏈路。

          文章持續(xù)更新中,微信搜索【路多辛】閱讀更多優(yōu)質(zhì)文章

          件拖拽上傳

          使用HTML5的文件API, 可以將操作系統(tǒng)中的文件拖放到瀏覽器的指定區(qū)域, 實(shí)現(xiàn)文件上傳到服務(wù)器。本文將結(jié)合實(shí)例講解HTML5+jQuery+PHP實(shí)現(xiàn)拖拽上傳圖片的過程, 來看下HTML5的魅力吧。

          HTML

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

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

          Javascript

          要想實(shí)現(xiàn)拖拽, 頁面需要阻止瀏覽器默認(rèn)行為, 即四個(gè)事件(拖離、拖后放、拖進(jìn)、拖來拖去), 因?yàn)槲覀円柚篂g覽器默認(rèn)將圖片打開的行為, 這里我們使用jQuery來完成。

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

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

          var fileList = e.dataTransfer.files;

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

          $(function(){
          /// ...接上部分
          var box = document.getElementById('drop_area'); //拖拽區(qū)域
          box.addEventListener("drop",function(e){
          e.preventDefault(); //取消默認(rèn)瀏覽器拖拽效果
          var fileList = e.dataTransfer.files; //獲取文件對象
          //檢測是否是拖拽文件到頁面的操作
          if(fileList.length == 0){
              return false;
          }
          //檢測文件是不是圖片
          if(fileList[0].type.indexOf('image') === -1){
          alert("您拖的不是圖片!");
          return false;
          }
          
          //拖拉圖片到瀏覽器,可以實(shí)現(xiàn)預(yù)覽功能
          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模擬表單數(shù)據(jù), 直接將數(shù)據(jù)append到formdata對象中, 實(shí)現(xiàn)了ajax上傳。

          PHP

          upload.php用于接收上傳的文件信息, 完成上傳, 實(shí)現(xiàn)代碼如下:

          <?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>

          最后總結(jié)下HTML5實(shí)現(xiàn)拖拽上傳的技術(shù)要點(diǎn):

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

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

          3、讀取圖片數(shù)據(jù)并添加預(yù)覽圖。

          4、發(fā)送圖片數(shù)據(jù):使用FormData模擬表單數(shù)據(jù)AJAX提交文件流。

          TTP(HyperTextTransferProtocol)即超文本傳輸協(xié)議,目前網(wǎng)頁傳輸?shù)牡耐ㄓ脜f(xié)議。HTTP協(xié)議采用了請求/響應(yīng)模型,瀏覽器或其他客戶端發(fā)出請求,服務(wù)器給與響應(yīng)。就整個(gè)網(wǎng)絡(luò)資源傳輸而言,包括message-header和message-body兩部分。首先傳遞message- header,即http header消息http header 消息通常被分為4個(gè)部分:general header, request header, response header, entity header。但是這種分法就理解而言,感覺界限不太明確。根據(jù)維基百科對http header內(nèi)容的組織形式,大體分為Request和Response兩部分。



          Requests部分


          接上面:

          Responses 部分


          接上面



          原文地址:https://kb.cnblogs.com/page/92320/


          主站蜘蛛池模板: 亚洲av成人一区二区三区观看在线 | 国产一区二区三区手机在线观看 | 免费一区二区三区| 老熟妇仑乱一区二区视頻| 国产伦精品一区二区三区免费下载| 好看的电影网站亚洲一区| 亚洲一区视频在线播放| 精品免费AV一区二区三区| 日本精品一区二区三本中文 | 国产成人精品久久一区二区三区av| 亚洲综合无码一区二区| 精品福利一区二区三| 亚洲综合无码AV一区二区 | 中文字幕Av一区乱码| 成人免费一区二区三区| 无码精品不卡一区二区三区| 中文字幕精品一区二区2021年| 亚洲福利视频一区二区三区| 久久99精品波多结衣一区| 久久久精品人妻一区二区三区| 国模精品一区二区三区| 综合久久久久久中文字幕亚洲国产国产综合一区首| 天堂Av无码Av一区二区三区| 色综合视频一区中文字幕| 天堂成人一区二区三区| 国产伦精品一区二区三区不卡| 国内精品一区二区三区最新| 午夜视频在线观看一区二区| 精品无码国产一区二区三区麻豆| 国产精品无码一区二区在线观| 久热国产精品视频一区二区三区| 久热国产精品视频一区二区三区| 国产一区二区三区不卡在线观看| 精品视频一区二区| 国产精品男男视频一区二区三区| 国产成人无码一区二区三区在线 | 日本成人一区二区三区| 亚洲电影唐人社一区二区| 亚洲午夜精品一区二区麻豆| 国产综合无码一区二区色蜜蜜| 一区二区网站在线观看|