gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:30:53 30 4
gpt4 key购买 nike

我已经成功地使用 ResumableJS 将多个文件分块上传到服务器.在上传过程中,用户可以看到整体上传进度和单个文件上传百分比。也可以暂停/恢复整个上传。

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

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();
});

关于javascript - 使用 ResumableJS 取消、中止和重试单个文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27140184/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com