为什么 Blueimp 的 JQuery 文件上传会添加所有上一个文件。即使在 init 上设置了选项 [replaceFileInput: false] 和 [maxNumberOfFiles: 1],是否仍选择文件?

2023-11-24

我只有普通形式,带有一些输入字段和一个文件输入字段。 我使用 Blueimp 的 Jquery 文件上传插件来上传文件。如果您选择一个文件然后单击上传按钮,它似乎可以工作。但是,如果您重新选择要上传的文件,它会保存所有选择的历史记录,并在上传后将所有 XHR 发送到服务器。

我只想上传一个当前选定的文件,并非所有先前选择的文件(在文件打开对话框中)。

这是我的 js 模块来处理上传:

$(function () {
    $('#upload_form').fileupload({

        dataType: 'json',
        autoUpload: false,
        fileInput: '#filechose_button',
        replaceFileInput: false,
        maxNumberOfFiles: 1,
        multipart: true,

        add: function (e, data) {

            $('#upload_button').click(function () {

                $('#upload_button').attr('disabled', true);
                ...
                data.submit();
                ...
            });
        },

        done: function (e, data) {
          ... // successfully uploaded
        },

        progressall: function (e, data) {
          ... // update a progress bar
        }
    });
});

我在这里找到的解决方案(如何使用blueimp文件上传插件仅上传一次文件?)似乎不是最好的方法(我认为它很脏),因为仅仅解除点击事件的绑定仍然不能解决收集所有先前选择的文件的问题(某种内存泄漏)

选项maxNumberOfFiles: 1对我不起作用。


我遇到了同样的问题,我的解决方案是取消绑定按钮的单击事件,并在调用添加事件时将其绑定回来。尝试这个。

...

add: function (e, data) {

        $('#upload_button').unbind('click');
        data.context = $('#upload_button').bind('click', function () {
                    ...
                    data.submit();
        }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Blueimp 的 JQuery 文件上传会添加所有上一个文件。即使在 init 上设置了选项 [replaceFileInput: false] 和 [maxNumberOfFiles: 1],是否仍选择文件? 的相关文章

  • getScript 本地加载而不是全局加载?

    根据我的阅读 JQuery 的 getScript 函数使用名为 global eval 的函数在全局上下文中加载脚本文件 是否有特定的设置或方法可以更改此设置 以便它将改为在我调用它的函数中加载 如果我执行以下代码名称 则返回未定义 因为
  • 当来源为 http 且目标 url 为 https 时,如何在本地网络中发出 POST 请求?

    我需要从 POS 销售点 http 向支付终端 https 发出 POST 请求 它们连接在我的本地网络中 当我向邮递员发出请求时 一切正常 但每当我从 POS 发出请求时 我都会收到错误 POSThttps 我的IP地址 8443 nex
  • 渲染后更改 Fullcalendar 事件源

    我一直在使用 FullCalendar v1 5 3 来替代 MS SharePoint 我正在尝试重新渲染日历事件的源 例如 当页面默认加载时 这是 ajax 调用 日历 事件 feedTasks start 1338094800 end
  • SerializeArray() 给出空数组

    我正在尝试使用 seralizeArray 收获形式输入值 输入字段由具有相应价格的项目列表组成 我想根据相应的密钥对保存每个值 但不断收到错误 empty array with 0 length 我尝试了几种选择器组合 但仍然得到 如何才
  • 在 jQuery 中填充文本框时执行 JavaScript 函数?

    当文本框填充文本时 如何在 JavaScript 中执行函数 文本框对用户隐藏 它将由 USB 磁卡刷卡器填充 伪代码
  • 我可以检测焦点来源吗? (Javascript、jQuery)

    快速提问 是否可以检测焦点是来自鼠标单击还是来自焦点事件的选项卡 我想如果没有 我将不得不在同一元素上使用单击句柄来确定源 但我更喜欢通过焦点事件的方式 Thanks Gausie 可能无法 100 工作 但如果没有直接的方法 那么你不能直
  • 最有用的 jQuery 原生 API 函数

    前 5 10 个最常用的 jQuery 本机 API 函数是什么 请不要建议 jQuery 函数本身 因为毫无疑问这是最常用的函数 如果可能的话 还请提供它们所涵盖的场景 提出这个问题的原因是我尝试创建一个类似 jQuery 的 API充足
  • 我可以使用 javascript 生成 JSON 文件吗?

    我想在域 example1 com 上创建一个页面 并获取 解析另一个域 example2 com json json 上的 JSON 文件 可以使用 javascript 生成 json 文件 在 example2 com 上 吗 我认为
  • 尝试将 jquery 加载到 tampermonkey 脚本中

    我正在编写一个脚本 在加载登录页面时登录到我的大学网络 代码如下 UserScript name My Fancy New Userscript namespace http use i E your homepage version 0
  • 如何在全日历中显示从数据库中获取事件的时间

    你好朋友在我的应用程序中 我真的制作了一个弹出页面 它在数据库中插入事件 并从数据库中获取事件 但事件没有按时间显示数据 读取有一系列事件 其中包含 eventid eventtitle start end 和格式类似数组 id 10 ti
  • 快速 HTML 表格排序?

    是的 我知道有一个lot有很多 JS jQuery 程序可以做到这一点 我目前正在使用http www kryogenix org code browser sorttable sorttable js http www kryogenix
  • HTML Canvas - 动态更改文本

    当我在输入文本字段中输入内容时 我试图更改 html 画布上的文本 但是 我可以添加文本 如果我删除并再次输入 新文本将添加到旧文本的顶部 JSFIDDLE https jsfiddle net bm7jv7bk 1 document ge
  • 如何使用 jtabs 链接到选项卡?

    我使用此网站上找到的步骤将选项卡添加到我正在处理的页面的一部分 stridertechnologies com stoutwebsite products php http code tricks com create a simple h
  • 如何使用 Twitter Bootstrap 弹出窗口进行 jQuery 验证通知?

    我可以使用弹出窗口出现引导程序 http twitter github com bootstrap很容易 我还可以使用标准进行验证jQuery 验证插件 http docs jquery com Plugins Validation or
  • 如何重定向到WEB-INF文件夹中的JSP

    我有一个带有 NAV 的 jsp 其中还包含 UL 和以下元素 如下面的代码所示
  • JavaScript 相当于 jQuery 的 keyup() 和 keydown()

    我在 stackoverflow 上看到过这个链接 document ready 相当于没有 jQuery https stackoverflow com questions 799981 document ready equivalent
  • 如何使整个 jqGrid 禁用/只读

    如何使整个 jqGrid 禁用 只读 我有一个带有逻辑 编辑部分 的页面 当用户选择要编辑的内容时显示该页面 并在用户完成编辑 保存或取消 时隐藏该页面 显示编辑部分时 我禁用了页面上的几个其他元素 我想禁用他们在 jqGrid 中单击的能
  • jQuery - 禁用选定的选项

    需要使用 jQuery 禁用选择框中已选择的选项 我希望它变灰 就像汇编选择 http www ryancramer com projects asmselect examples example1 html 测试我的例子here http
  • innerHTML 未写入 svg 组 Firefox 和 IE

    我正在做一个项目 遇到了障碍 在 Chrome 中 它按预期工作 但在 Firefox 和 IE 中则不然 下面的代码实际上只是真实项目代码的非常简化的版本 基本上我正在尝试替换 svg 的每组中的圆圈 因此 我从预编码的圆圈开始 然后删除
  • 如何取消 jquery.load()?

    当 load 在 5 秒内没有返回时 我想取消 load 操作 如果是这样 我会显示一条错误消息 例如 抱歉 没有加载图片 我所拥有的是 超时处理 jQuery fn idle function time postFunction var

随机推荐