【发布时间】:2016-10-28 10:38:01
【问题描述】:
今天我正在使用 HTML5 中的拖放。我想做类似的事情:
- 从您的计算机中获取图像文件,
- 将它放到网络浏览器的 input="file" div 中
- 然后我需要拍摄这张照片并将其显示在#livePreview div 中
我知道我无法从用户位置获取此文件的绝对路径 - 安全问题。
我会这样做:
HTML
var livePreview = document.getElementById('livePreviewId');
var imageInput = document.getElementById("inputFileId");
imageInput.addEventListener("dragover", function( e ){
e.preventDefault();
e.stopPropagation();
});
imageInput.addEventListener("dragenter", function( e ){
e.preventDefault();
e.stopPropagation();
});
imageInput.addEventListener("drop", function( e ){
if(e.dataTransfer){
console.log(e.dataTransfer);
if(e.dataTransfer.files.length) {
console.log("e files length ", e.dataTransfer.files.length);
e.preventDefault();
e.stopPropagation();
/*UPLOAD FILES HERE*/
console.log("e files ", e.dataTransfer.getData("image/gif"));
upload(e.dataTransfer.files);
}
}
});
function upload(files){
console.log(files[0]);
}
<div id="livePreviewId" style="border:1px solid #d3d3d3;width:150px;height:300px;"></div>
<div class="pull-right">
<p>Drop it here:</p>
<input id="inputFileId" type="file" class="column" style="border:1px solid #d3d3d3;width:350px;height:50px;"/>
</div>
好的,我得到了 JSON 格式的文件,接下来呢?如何在浏览器中显示?我怎样才能将它发送到服务器?如何存储在本地存储中?
也许一种可能的方法是将其发送到服务器(本地存储?)然后放入浏览器?但这不是实时预览?
任何想法如何解决这个问题?
BR
【问题讨论】:
标签: javascript html image web drag-and-drop