gpt4 book ai didi

jquery - 如何向 jquery-file-upload basic-plugin 添加取消上传按钮

转载 作者:行者123 更新时间:2023-12-03 22:31:13 25 4
gpt4 key购买 nike

我正在 Rails 4 中使用 jquery-file-upload,我从https://github.com/tors/jquery-fileupload-rails-paperclip-example开始。所以我使用 jquery-rails、jquery-fileupload-rails 和 paperclip gems。

由于我不是 jquery 或 javascript 的高手,所以我试图简化和理解一切,更改代码以使用 js.erb 远程调用 Rails。

因此,文件列表是一个rails部分(_videos.html_erb),上传 Controller 中的索引操作有一个index.js.erb来响应js。我在 de fileupload done 事件中添加了 $.get('/uploads'); 来刷新部分内容。

一切正常,除非取消按钮并且我不明白我必须做什么以及在哪里。

这就是 docs告诉我:

如何取消上传

可以通过调用 jqXHR 对象的 abort 方法来取消上传:

var jqXHR = $('#fileupload').fileupload('send', {files: filesList})
.error(function (jqXHR, textStatus, errorThrown) {
if (errorThrown === 'abort') {
alert('File Upload has been canceled');
}
});
$('button.cancel').click(function (e) {
jqXHR.abort();
});

这是我的index.html.erb:

在这里,对于进度条和文本指示,我放置了从 file-upload-basic-plugin 中提取的代码

<div class="container">
<h2 id="titol">Upload file</h2>
<%= form_for Upload.new, :html => { :multipart => true, :id => "fileupload" } do |f| %>
<div class="row fileupload-buttonbar">
<%= f.file_field :upload %>
<button class="cancel">Cancel upload</button>
</div>

<hr/>
<% end %>

<div id="videos">
<%= render partial: "videos" %>
</div>

<!--..........This is necessary even though I don't know why -->
<script id="template-upload" type="text/x-tmpl">
</script>

<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
</script>
<!--............................................................... -->

<script type="text/javascript" charset="utf-8">

$('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo(document.body);
data.submit();
},
done: function (e, data) {
data.context.text('Upload finished.');
$.get('/uploads');
}

});

$('#fileupload').fileupload({
progressall: function (e, data) {
$("#titol").text(data.loaded);
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css(
'width', progress + '%');
}
});

</script>

我想我必须把这样的东西“var xhr =”

  $('#fileupload').fileupload({
dataType: 'json',
add: function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo(document.body);
var xhr = data.submit();
},
done: function (e, data) {
data.context.text('Upload finished.');
$.get('/uploads');
}

});

然后

$(function () {

$('button.cancel').click(function (e) {
jqXHR.abort();
});

})

但这不起作用,文档中的代码到处崩溃:filesList 不存在...等等

嗯,我想我需要一些关于 jquery 或 javascript 的基本指导

提前致谢

最佳答案

您还可以对数据调用abort()来取消单个正在进行的上传。

   $( '#fileUpload' ).fileupload( {
dataType: 'json',
add: function( e, data ) {
var abortBtn = $( '<a/>' )
.attr( 'href', 'javascript:void(0)' )
.append( 'Abort' )
.click( function() {
data.abort();
data.context.remove();
} );

data.context = $( '<div/>' )
.appendTo( document.body );

data.context.append( $( '<p/>' ) )
.append( 'Uploading ' + data.files[0].name )
.append( abortBtn );

data.submit();
},
done: function( e, data ) {
/* ... */
}
});

关于jquery - 如何向 jquery-file-upload basic-plugin 添加取消上传按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26218571/

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