Я пытаюсь извлечь полный путь к файлу, который был загружен из папки, в Dropzone в Chrome. Загрузка файла и все другие метаданные передаются должным образом. Я просто хочу передать полный путь к файлу, который также загружается.Отправить Dropzone file.fullPath to Rails controller
Я попытался много исправить эту проблему, но все же скорее новый, особенно для Javascript. Это мои ресурсы:
Get uploaded file from Dropzone
Passing JQuery Datepicker Data to Rails Controller
Passing the variables from from jquery to rails controller
How to pass variables from AJAX form into controller?
Dropzone.js and full path for each file (, который не имеет никакого ответа)
Это мои попытки:
Закачивает new.html.erb
<%= form_for([@parent, @upload], method: :post, html: { multipart: true, class: "dropzone", id: "upload-dropzone"}) do |f| %>
<% if @upload.errors.any? %>
<ul>
<% @upload.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<%= hidden_field_tag :full_path %>
<%= javascript_tag do %>
window.parent = '<%= @parent.id %>';
<% end %>
<% end %>
application.js
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require turbolinks
//= require_tree .
// Dropzone.autoDiscover = false;
// $(document).ready(function(){
// var myDropzone = Dropzone.getElementById("upload-dropzone");
// new Dropzone(myDropzone);
// myDropzone.on("sending", function(file, xhr, formData){
// formData.append('full_path', file.fullPath);
// })
// console.log(file.fullPath);
// })
// var myDropzone = new Dropzone("#upload-dropzone");
// document.querySelector("#upload-dropzone").classList.add("dropzone");
// var myDropzone = document.getElementById("upload-dropzone");
// Dropzone.myDropzone.on("sending", function(file, xhr, formData){
// formData.append('full_path', file.fullPath);
// })
Dropzone.options.uploadDropzone = {
accept: function(file, done){
var fullPath = { full_path: file.fullPath };
$.ajax({
type: "POST",
data: { full_path: fullPath.full_path }
});
done();
}
}
В application.js также есть другие мои попытки экстрагирования fullPath из элемента jQuery Dropzone. В незакомментированной функции, я могу получить доступ полного пути в консоли JavaScript с:
file.fullPath
Я хотел бы получить доступ к этому в:
загрузок контроллера
def create
@parent = Parent.find(params[:parent_id])
# here is an attempt to create the upload with the file_path
@upload = Upload.new(upload: params[:file], full_path: params[:full_path])
if @upload.save!
respond_to do |format|
format.json{ render json: @upload }
end
end
end
Маршруты. rb
resources :parent do
post 'uploads/new' => 'uploads#new'
end
+1, но мне не нужно, чтобы установить 'uploadDropzone 'to' false' для этого. Обратный вызов 'send' работал для меня. – starfry