【发布时间】:2013-08-12 14:42:00
【问题描述】:
我确定有几个问题与此类似,但我不知道要搜索什么。
我正在寻找一种在我的网站上启用拖放到 div 的方法。目前,当我将文件放入页面(我正在使用 Chrome)时,它会显示不是我想要的文件(文件:// url)。如果有办法在不使用任何插件的情况下做到这一点,我会更高兴。它应该支持多个文件。
这就是我的 div-css 的样子:
#dnd {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
}
这是我用于拖动的 jQuery 绑定:
function processFileUpload(droppedFiles)
{
var uploadFormData = new FormData($("#dnd")[0]);
if(droppedFiles.length > 0)
{
for(f = 0; f < droppedFiles.length; f++)
{
uploadFormData.append("upload[]",droppedFiles[f]);
}
}
$.ajax({
url : "index.php",
type : "POST",
data : uploadFormData,
cache : false,
contentType : false,
processData : false
});
}
$("#dnd").bind("dragenter", function() {
$(this).css("background", "#8c8c8c");
return false;
});
$("#dnd").bind("dragleave", function() {
$(this).css("background", "#c9c9c9");
return false;
});
$("#dnd").bind("drop", function(e) {
files = e.dataTransfer.files;
processFileUpload(files);
return false;
});
感谢所有 cmets 和答案。谢谢!
【问题讨论】:
-
@Dagon 感谢您的评论,但我有自己的 PHP 上传脚本工作正常(在拖放的同一页面上有一个按钮)。我只需要弄清楚如何使 div 允许拖放。
-
尝试将
e.stopPropagation();和e.preventDefault();添加到您的 drop 回调中。 -
@MetodMedja 没有做任何事情。不过感谢您的评论!
标签: php jquery html drag-and-drop