html5拖動上傳圖片效果程式碼例項

admin發表於2017-04-12

本章節分享一段程式碼例項,它實現了拖動上傳圖片的功能。

需要的朋友可以做一下參考,程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
</head>
<body>
<div id="drop_area" style="width:300px;height:200px;background:#fcc;"></div>
<div id="preview"></div>
<script>
//阻止預設事件
window.onload = function () {
  //拖離
  document.addEventListener('dragleave', function (e) { e.preventDefault(); });
  //拖後放
  document.addEventListener('drop', function (e) { e.preventDefault(); });
  //拖進
  document.addEventListener('dragenter', function (e) { e.preventDefault(); });
  //拖來拖去
  document.addEventListener('dragover', function (e) { e.preventDefault(); });
  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.webkitURL.createObjectURL(fileList[0]);
      var filename = fileList[0].name; //圖片名稱
      var filesize = Math.floor((fileList[0].size) / 1024);
      if (filesize > 500) {
        alert("上傳大小不能超過500K.");
        return false;
      }
      var image = document.createElement('img');
      image.src = img;
      var p = document.createElement("p");
      p.innerHTML = "圖片名稱:" + filename + "<br/>大小:" + filesize + "KB";
      document.getElementById("preview").appendChild(image);
      document.getElementById("preview").appendChild(p);
      //上傳
      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);
  };
</script>
</body>
</html>

相關文章