使用jQuery将删除的文件添加到文件输入

时间:2013-01-10 21:00:58

标签: jquery drag-and-drop file-io

我有一个自定义文件输入:

<div id="wrapper">
    <span id="fake-text-input"></span>
    <button id="select-a-file"></button>
    <input id="hidden-file-input" type="file" />
</div>

input[type="file"]被隐藏(display: none)并且通过收听\触发clickchange事件来处理选择文件。

我也想支持文件丢弃。在drop上删除文件但我不知道如何将#fake-text-input事件转发到drop时,我能够收听input[type="file"]事件。它甚至可能吗?

我对文件输入不透明技巧不感兴趣:)

$('body').on('drop', '#wrapper', function(e) {
    var file = e.originalEvent.dataTransfer.files[0];

    // I have the file.. now what?
});

2 个答案:

答案 0 :(得分:12)

这在谷歌浏览器中与我合作,现在与其他浏览器的问题

$("input[type='file']").prop("files", e.originalEvent.dataTransfer.files);

答案 1 :(得分:1)

从@NassimPHP的答案来看,这行得通!

$("input[type='file']").prop("files", e.dataTransfer.files);