使用 ResumableJS 取消、中止和重试单个文件上传

2024-02-29

我已经成功地使用以下方法将多个文件分块上传到服务器可恢复JS http://www.resumablejs.com。在上传过程中,用户可以看到整体上传进度和单个文件上传百分比。还可以暂停/恢复整个上传。

我现在想要的是允许用户取消/中止单个文件上传而不中断其他文件上传。
在 ResumableJS 中website http://www.resumablejs.com有一些方法可以做我想做的事,但没有关于如何实现这一点的示例。
我已经尝试过以下方法:

onclick="ResumableFile.abort(); return(false);"
onclick="file.abort(); return(false);"
onclick="this.abort(); return(false);"

如何在不中断整个文件上传的情况下中止特定文件上传?

更新:这是我的 JS 代码:

var r = new Resumable({
    target: 'FileHandler.ashx'
});

// Resumable.js isn't supported, fall back on a different method
if (!r.support)
{}
else
{
    // Show a place for dropping/selecting files
    $('.resumable-drop').show();
    r.assignDrop($('.resumable-drop')[0]);
    r.assignBrowse($('.resumable-browse')[0]);

    // Handle file add event
    r.on('fileAdded', function (file)
    {
        //// Add the file to the list
        $('.resumable-list').append('<li class="resumable-file-' + file.uniqueIdentifier + '">Uploading <span class="resumable-file-name"></span> <span class="resumable-file-progress"></span> <button type="button" id="removeButton" onclick="abortFile();">Remove</button>');
        $('.resumable-file-' + file.uniqueIdentifier + ' .resumable-file-name').html(file.fileName);

        // Actually start the upload
        r.upload();
    });

    //var file = new ResumableFile();

    //$("#removeButton").on("click", function ()
    //{
    //    console.log("abort!");
    //    file.abort();
    //});

    function abortFile()
    {
        console.log("abort!");
        r.abort();
    }

    r.on('pause', function ()
    {
        // Show resume, hide pause main progress bar
    });

    r.on('complete', function ()
    {
        // Hide pause/resume when the upload has completed
    });

    r.on('fileSuccess', function (file, message)
    {
        // Reflect that the file upload has completed
    });

    r.on('fileError', function (file, message)
    {
        // Reflect that the file upload has resulted in error
    });

    r.on('fileProgress', function (file)
    {
        // Handle progress for both the file and the overall upload
    });

}


在 Ruben Rutten 的帮助下,我解决了我的问题:

// Handle file add event
r.on('fileAdded', function (file)
{
    // Show progress bar

    // Show pause, hide resume

    //// Add the file to the list
    $('.resumable-list').append('<li class="resumable-file-' + file.uniqueIdentifier + '">Uploading <span class="resumable-file-name"></span> <span class="resumable-file-progress"></span> <button type="button" class="removeButton" id="' + file.uniqueIdentifier + '">Remove</button>');
    $('.resumable-file-' + file.uniqueIdentifier + ' .resumable-file-name').html(file.fileName);


    ///event to remove file from upload list
    $(".removeButton").on("click", function ()
    {
        for (var i = 0; i < r.files.length; i++)
        {
            var identifier = $(this).attr("id");

            if (r.files[i].uniqueIdentifier == identifier)
            {
                r.files[i].cancel();
                $('.resumable-file-' + identifier).remove();
            }
        }
    });

    r.upload();

});

我知道这是一个老问题,但这可能对某人有帮助:

查看您的解决方案,有一种比迭代所有文件更有效的方法来获取可恢复实例:

// event to remove file from upload list
$(".removeButton").on("click", function ()
{
    var identifier = $(this).attr("id");
    var file = resumable.getFromUniqueIdentifier(identifier);
    file.cancel();
    $('.resumable-file-' + identifier).remove();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ResumableJS 取消、中止和重试单个文件上传 的相关文章

  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • Angular 2 链式 Promise 并传递拒绝

    应该是一个简单的问题 但是我找不到有关如何做到这一点的文档 像这样链接一个承诺 Making a promise no problem let promise new Promise resolve reject gt let data d
  • 用隐藏单元格补充 colspanned 表格有什么不好吗?

    我一直在表格上开发一些排序和选择功能 我发现在具有跨单元格的表格中定位非常困难 我只是添加了跨区单元格并将其隐藏 它看起来不错 它与我的 js 一起工作 非常适合索引 但我想知道这是否是合法的方法 stuffing display none
  • Node js 使用中间件重定向进行过多重定向

    在我的 Node js 应用程序 我使用的是express 4 x 中 我想检查用户是否已登录 如果用户未登录 我想重定向到我的登录页面 然后我在中间件中这样做 服务器 js app use function req res next if
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • 如何在jquery中获取保存时间和当前时间的差异?

    我想在 javascript 或 jquery 中获取保存时间和当前时间之间的时差 我节省的时间看起来像Sun Oct 24 15 55 56 GMT 05 30 2010 java中的日期格式代码如下 String newDate 201
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • 在正则表达式中,匹配一件事或另一件事,或两者都匹配

    在正则表达式中 我需要知道如何匹配一件事或另一件事 或两者 按顺序 但至少有一件事情需要在那里 例如 下面的正则表达式 0 9 0 9 将匹配 234 and 56 but not 234 56 而下面的正则表达式 0 9 0 9 将匹配上
  • HTML 背景图像加载

    我有一个简单的 HTML 页面 其中包含一些 JavaScript JavaScript 在主体中启动 onLoad 身体还有一个背景图像 JavaScript 在加载背景图像之前启动 有没有办法让主体 onLoad 等待主体背景图片加载
  • Ansible 无法找到 python 模块

    使用ansible在多个虚拟机上运行docker swarm ansible找不到python模块docker在远程计算机上 即使它已安装 运行剧本sudo ansible playbook i inv2 py etc ansible pl
  • D3 拖动事件行为:DragEvent.x 和 DragEvent.y 值源

    我不明白 Mike Bostock 的 D3 示例中 D3 DragEvent 对象的行为 这是我不明白的两个例子 圆圈拖动 I https bl ocks org mbostock 22994cc97fefaeede0d861e6815a
  • CocosDenshion 音乐淡出

    我在游戏中使用 cocos denshion 来播放音乐 我目前正在使用以下代码播放背景音乐 SimpleAudioEngine共享引擎 playBackgroundMusic backSong mp3 然而 当游戏结束时 我需要背景音乐逐
  • 是否可以在iOS模拟器中安装Adobe reader或第三方应用程序进行测试?

    我试图在谷歌中找到答案 没有运气 我正在使用 UIDocumentationController 从我的应用程序中打开 PDF 它在设备中工作正常 我显示了共享 adobe reader 等选项 当我想在 iOS 模拟器中测试它时 我无法选
  • 本地定时器对象事件处理程序

    我在类函数中有以下代码 public function foo void var timer Timer new Timer 10000 1 timer addEventListener TimerEvent TIMER COMPLETE
  • SQL从另一列插入不同值的计数

    我目前正在努力解决以下查询 我在数据库中有一个表 其中包含公司列表及其拥有的许多产品 我正在寻找Count的数量独特的产品他们拥有并将其插入到表中其公司名称所在的行中 我尝试过以下方法 INSERT INTO table name SET
  • 如何在 JavaScript 中有效地将大块细分为许多大小为 2 的幂的小块

    建设关闭这个答案 https stackoverflow com questions 66253424 how to efficiently segment a large block of predefined size into sma
  • Android 编译器上的 Delphi PATH 错误

    我刚刚在我办公室的 DELL 工作站中安装了 Delphi 10 Seattle 并且能够编译 32 位和 64 位 当我选择Android时 出现这样的错误 执行错误 命令 PATH C Program 文件 Java jdk1 7 0
  • 使用 OpenCV 2.2 实施 Sift

    有人知道 SIFT 实现示例与 OpenCV 2 2 的链接吗 问候 下面是一个最小的例子 include
  • 如何知道 Cosmos 中的 Cygnus 通知表名称?

    我正在使用 Cygnus 通过 httpfs 向 Cosmos 发送 Orion Context Broker 通知 Hive 历史记录中发送到 Cosmos 的数据存储在哪里 存储 Cygnus 数据的表的名称是什么 Cygnus 在 C
  • Flask URL Route:将所有其他 URL 路由到某个函数

    我正在使用 Flask 0 9 我有使用 Google App Engine 的经验 在 GAE 中 url 匹配模式按照它们出现的顺序进行评估 先到先得 Flask 中也是同样的情况吗 在 Flask 中 如何编写 url 匹配模式来处理
  • Android 多屏限定符定义

    我想创建一个与大量设备和屏幕兼容的布局 我一直在研究 发现最常见的屏幕分辨率是 249x320 480x800 600x1024 720x1280 以及与这些成比例的其他一些屏幕 好吧 阅读文档后我发现有两种方法可以做到这一点 到 3 2
  • 使用 J2V8 从 .js 执行函数

    我正在使用 J2V8 在 Android 上执行 JavaScript 代码 在我的 Java 代码中 我可以访问和执行单独 js 文件的 JavaScript 函数吗 如果可以的话 我该怎么做 与许多 JavaScript 环境一样 您只
  • Anorm 中的原子 MySQL 事务

    我编写了一个简单的命中计数器 它使用 Anorm 更新 MySQL 数据库表 我希望交易是原子的 我认为最好的方法是将所有 SQL 字符串连接在一起并执行一个查询 但这对于 Anorm 似乎是不可能的 相反 我将每个选择 更新和提交放在单独
  • 如何在 PyTorch 中保存模型架构?

    我知道我可以通过以下方式保存模型torch save model state dict FILE or torch save model FILE 但两者都不保存模型的架构 那么我们如何在 PyTorch 中保存模型的架构 就像创建一个 p
  • R CMD 氧气无法识别

    我刚刚尝试了 Roxygen 套餐 在 R 中 我可以运行 Roxygen Vignette 中的示例 但是在命令行中 R CMD roxygen未被识别为有效命令 当我跑步时R CMD help 我可以看到全部INSTALL check
  • 如何设置超时来中止工厂或服务内的 $http.get() ?

    我有以下方法getData url 在我的factory它使用 http get url 从 URL 获取数据 angular module az app factory WebServiceFactory function http q
  • 使用 ResumableJS 取消、中止和重试单个文件上传

    我已经成功地使用以下方法将多个文件分块上传到服务器可恢复JS http www resumablejs com 在上传过程中 用户可以看到整体上传进度和单个文件上传百分比 还可以暂停 恢复整个上传 我现在想要的是允许用户取消 中止单个文件上