gpt4 book ai didi

javascript - 如何检测用户何时将图像放入浏览器当前选项卡视口(viewport)中?

转载 作者:行者123 更新时间:2023-11-29 16:19:14 24 4
gpt4 key购买 nike

我想知道如何进行拖放图片上传。我不明白的是,当用户将图片拖放到某个 div 或 body 中进行上传时,如何让服务器知道?支持吗?在所有常见的浏览器中,即 ff、chrome、safari。谢谢:)

最佳答案

我可以告诉你,你没有做太多研究。

简短的回答是,不。 所有主流浏览器均不支持检测用户何时将图像放入客户端窗口的方法。

此外,正如 Rajat Saxena 在评论中指出的那样,您必须通过在放置事件上发送 ajax 请求来通知服务器文件放置。


HTML5

这是 drag and drop from desktop to browser使用 HTML5 和 javascript

<div id="drop_zone">Drop files here</div>
<output id="list"></output>

<script>
function handleFileSelect(evt) {
evt.stopPropagation();
evt.preventDefault();

var files = evt.dataTransfer.files; // FileList object.

// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
f.size, ' bytes, last modified: ',
f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
'</li>');
}
document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
}

function handleDragOver(evt) {
evt.stopPropagation();
evt.preventDefault();
evt.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy.
}

// Setup the dnd listeners.
var dropZone = document.getElementById('drop_zone');
dropZone.addEventListener('dragover', handleDragOver, false);
dropZone.addEventListener('drop', handleFileSelect, false);
</script>

JQuery

这是一个 drag and drop from desktop to browser使用 JQuery(Firefox 和 Chrome)

function ignoreDrag(e) {
e.originalEvent.stopPropagation();
e.originalEvent.preventDefault();
}

$('#target')
.bind('dragenter', ignoreDrag)
.bind('dragover', ignoreDrag);
.bind('drop', drop);

function drop(e) {
ignoreDrag(e);
var dt = e.originalEvent.dataTransfer;
var files = dt.files;

if(dt.files.length > 0){
var file = dt.files[0];
alert(file.name);
}
}

其他相关插件链接(未测试)和问题

关于javascript - 如何检测用户何时将图像放入浏览器当前选项卡视口(viewport)中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com