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


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

<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并通过监听\触发来处理选择文件 click 和 change 事件。

我也想支持文件丢弃。我能够听到 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?
});

13120
2018-01-10 21:00


起源

你能提供你试过的代码吗? - insomiac
你应该看看这个SOQ。 stackoverflow.com/questions/8006715/... - cggaurav
@insomiac看看我的编辑。虽然代码不多.. - tamir
@cggaurav这意味着它无法完成? - tamir
我不知道是否有可能将文件附加到文件输入。我认为出于安全原因不允许这样做。但也许你不需要它。为什么不能在获得文件后立即使用$ .ajax({type:“POST”,...})触发POST请求? - Vaidas


答案:


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

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

12
2018-03-28 03:55



好吧,如果你找到解决方案,请告诉我 - tamir
@nassimPHP,你找到了解决方案吗? - Sunny R Gupta