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

Posted

技术标签:

【中文标题】使用 jQuery 将删除的文件添加到文件输入【英文标题】:Add dropped file to a file input using jQuery 【发布时间】:2012-12-25 09:18:12 【问题描述】:

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

<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 事件来处理选择文件。

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

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

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

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

【问题讨论】:

你能提供你尝试过的代码吗? 你应该看看这个 SOq。 ***.com/questions/8006715/… @insomiac 看看我的编辑。虽然代码不多.. @cggaurav 所以这意味着它不能完成? 我不知道将文件附加到文件输入的任何可能性。我认为出于安全原因不允许这样做。但也许你不需要它。为什么不能在获得文件后立即使用 $.ajax(type: "POST", ...) 触发 POST 请求? 【参考方案1】:

这在谷歌浏览器中与我一起使用,现在其他浏览器出现问题

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

【讨论】:

好吧,如果您找到解决方案,请告诉我 @nassimphp,你找到解决方案了吗?【参考方案2】:

根据@NassimPHP 的回答,这行得通!

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

【讨论】:

以上是关于使用 jQuery 将删除的文件添加到文件输入的主要内容,如果未能解决你的问题,请参考以下文章

我无法使用 PHP 和 jQuery 将表单数据更新到 MySQL

js及jquery实现动态的文件上传操作按钮的添加和删除

jquery的dataTable怎么使用 , 需要引入啥js文件,怎么创建表和怎么添加删除数据?

使用 jquery 从数组列表中添加和删除数组项

使用 django ajax jquery 提交一个文件不起作用的表单

使用外部 CSS 文件将 jQuery UI 添加到 Greasemonkey 脚本失败