如何在伺服器端下載的網頁中顯示客戶端的圖片
阿新 • • 發佈:2018-12-06
一般情況下,網頁只能顯示伺服器上的圖片。
(網頁中的圖片都是從伺服器端請求來的圖片)。
如何實現頁面中顯示客戶端的圖片呢?(比如說在桌面上拖拽一個圖面到網頁中的容器中)
HTML5中提供的用於檔案輸入輸出(I/O)的物件:
File:代表一個檔案/目錄檔案物件
FileList:代表一個檔案列表(類陣列物件)
FileReader:用於從檔案中讀取內容
FileWriter:用於向檔案寫出內容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> Document</title>
<style>
#container{
width: 400px;
height: 200px;
border:1px solid #aaa;
}
</style>
</head>
<body>
<h2>請拖拽您的圖片到下放區域中</h2>
<div id="container"></div>
<script>
//拖放的目標物件--document,監聽drop事件,防止瀏覽器中開啟客戶端圖片
document.ondragover =function(e){
//阻止dragover的預設行為;繼續觸發dragleave
e.preventDefault();
}
document.ondrop=function(e){
//阻止document的drop事件的預設行為:在當前敞口中開啟客戶端圖片
e.preventDefault();
}
//拖放的源物件--客戶端的圖片
//拖放的目標物件--div#container,若圖片釋放此元素上方,則需要在其中顯示出該圖片
container.ondragover=function(e){
e.preventDefault();
}
container.ondrop=function (e){
//讀取拖放進來的客戶端圖片
//提示Chrome此處的顯示有問題:files.length:0,其實不是0
//遍歷拖進來的內容
/*for(var i=0;i<list.length;i++){
var f=list[i];
console.log(f);
}*/
var f0=e.dataTransfer.files[0];
var reader=new FileReader();//檔案讀取器
//只適合於文字檔案,讀取指定為檔案的內容,作為'資料URL'
reader.readAsDataURL(f0);
reader.onload=function(){
//客戶端檔案讀取完成
var img=new Image();
img.src=reader.result;//DataURL
container.appendChild(img);
}
}
</script>
</body>
</html>