如何使用carrierwave异步上传视频
How to upload videos asynchronously using carrierwave
我正在使用载波将电影上传到 amazon s3。我想异步做,这样我可以同时上传多个视频,我想使用进度条。
我该怎么做?
您可以为此使用 dropzone
。这是我在我的应用程序中使用的示例代码:
查看:
<%= form_tag user_new_drag_drop_photo_path, method: :post, class: "dropzone form-horizontal", id: "media-dropzone", :authenticity_token => true do %>
<div class="fallback">
<%= file_field_tag "photo", multiple: true %>
</div>
<% end %>
Js代码:
function create_dropzone(thumbnailUrls){
Dropzone.autoDiscover = false;
var mediaDropzone;
mediaDropzone = new Dropzone("#media-dropzone", {
addRemoveLinks: true,
success: function(file, response) {
$(file.previewTemplate).find('.dz-remove').attr('id', response.id);
$(file.previewElement).addClass("dz-success");
},
removedfile: function(file){
var id = $(file.previewTemplate).find('.dz-remove').attr('id');
var parent = $(file.previewTemplate).find('.dz-remove').parent();
parent.remove();
// The above will remove the file preview but you can send a AJAX request to delete it from server
},
init: function () {
// This callback be used to do some task on dropzone intialize
}
});
这纯粹是我的代码(我删除了一部分),你需要根据自己的情况进行更改。我已经使用 user_new_drag_drop_photo_path
这是我的自定义路径,您可以将它带到 photos_controllers
create
操作。它将使用 AJAX
发送请求并通过它保存请求。
您可以在此处找到更多教程:
希望这对您有所帮助。
我正在使用载波将电影上传到 amazon s3。我想异步做,这样我可以同时上传多个视频,我想使用进度条。
我该怎么做?
您可以为此使用 dropzone
。这是我在我的应用程序中使用的示例代码:
查看:
<%= form_tag user_new_drag_drop_photo_path, method: :post, class: "dropzone form-horizontal", id: "media-dropzone", :authenticity_token => true do %>
<div class="fallback">
<%= file_field_tag "photo", multiple: true %>
</div>
<% end %>
Js代码:
function create_dropzone(thumbnailUrls){
Dropzone.autoDiscover = false;
var mediaDropzone;
mediaDropzone = new Dropzone("#media-dropzone", {
addRemoveLinks: true,
success: function(file, response) {
$(file.previewTemplate).find('.dz-remove').attr('id', response.id);
$(file.previewElement).addClass("dz-success");
},
removedfile: function(file){
var id = $(file.previewTemplate).find('.dz-remove').attr('id');
var parent = $(file.previewTemplate).find('.dz-remove').parent();
parent.remove();
// The above will remove the file preview but you can send a AJAX request to delete it from server
},
init: function () {
// This callback be used to do some task on dropzone intialize
}
});
这纯粹是我的代码(我删除了一部分),你需要根据自己的情况进行更改。我已经使用 user_new_drag_drop_photo_path
这是我的自定义路径,您可以将它带到 photos_controllers
create
操作。它将使用 AJAX
发送请求并通过它保存请求。
您可以在此处找到更多教程:
希望这对您有所帮助。