我正在尝试创建拖放文件上传表单。我让拖放部分工作,但是一旦我拥有它,我就无法弄清楚如何提交文件。我不能使用ajax,表单需要像html上传表单一样重定向。
这是我的拖放代码。
$("html").on("dragover", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).addClass('dragging');
});
$("html").on("dragleave", function(event) {
event.preventDefault();
event.stopPropagation();
$(this).removeClass('dragging');
});
$("html").on("drop", function(event) {
event.preventDefault();
event.stopPropagation();
console.log(event.originalEvent.dataTransfer.files)
});
通常在发布通过javscript生成的数据时,我使用下面的函数,但它不适用于文件,因为你无法设置文件输入。
function post(path, data) {
let form = $('<form>')
.attr({
method: 'post',
path: path
})
.appendTo('body')
for(let key in data) {
if(!data.hasOwnProperty(key)) continue;
$('<input>')
.attr({
type: 'hidden',
name: key,
value: data[key]
})
.appendTo(form)
}
form.submit()
}