js圖片拖拽系列3----拖拽本地圖片並上傳
阿新 • • 發佈:2021-02-08
js圖片拖拽系列3----拖拽本地圖片並上傳
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: auto;
height: 200px;
width: 200px;
overflow: hidden;
background-color: rgb(120, 138, 101)
}
img {
width: 50px;
height: 50px;
}
</style>
</head>
< body>
<div id="img" class="box" ondragover="dragOver(event)" ondrop="drop(event)"></div>
<script src="scripts/axios.min.js"></script>
<script>
function dragStart(e) {
e.dataTransfer.setData ("id", e.target.id);//將img的id寫入
}
function dragOver(e) {
e.preventDefault();//阻止拖拽結束的預設行為,會把檔案作為連結開啟。
}
function drop(e) {
e.preventDefault();//阻止拖拽結束的預設行為,會把檔案作為連結開啟。
var id = e.target.id;//得到div的id
var box = document.getElementById(id);//通過id得到div
var file = e.dataTransfer.files[0];//得到檔案
var fileReader = new FileReader();
fileReader.readAsDataURL(file);//將file讀為url
fileReader.onload = function (ev) {//為div新增一個圖片,圖片路徑為拖拽的檔案路徑
var img = document.createElement("img");
img.src = fileReader.result;
box.appendChild(img);
}
// 拖拽圖片上傳
let filelist2 = event.dataTransfer.files;
let formData = new FormData();
// // 通過迴圈結構將拖放形成的FileList物件中的File物件,依次
// // 新增到FormData中
for (let n = 0; n < filelist2.length; n++) {
formData.append('upload', filelist2.item(n));
}
console.log(formData)
// 將FormData物件提交到WEB伺服器
axios.post('http://127.0.0.1:3000/upload', formData);
}
</script>
</body>
</html>