我如何使用jQuery文件以嵌套形式上传?

我试图在我的新rails项目中使用https://github.com/blueimp/jQuery-File-Upload/wiki/Rails-setup-for-V5。 我想创建一个名为assignments对象,并将多个文件附加到它们上。

如何为上传的文件创建嵌套形式的作业表单?


这个插件改变了输入[type = file]的信息形式,当它在其他形式里时,它是无效的。 我解决了这个问题:我更改为<div id="form">的外部窗体。 我通过jQuery提交表单

$.post(url, $('#form *').serialize(), function(response){...}, 'json')

当然你必须在提交表单之前在服务器端以某种方式管理上传。


我这样做的方式是在我的主窗体之外添加一个单独的窗体,仅用于上传文件:

= s3_uploader_form post: void_url, as: "photo_url", id: "photo_upload" do
  = file_field_tag "file", multiple: true

= form_for @model do |f|
  ...
  = f.fields_for :children do |child_fields|
    = file_field_tag :"#{child_id}_file", multiple: true

然后,我将fileupload插件的一部分钩到两个表单上,如下所示:

$("#photo_upload").fileupload
  add: (e, data) ->
    data.submit()

  done: (e, data) ->
    file = data.files[0]

// For each child
$("##{child_id}_file").fileupload
  dropzone: $("##{child_id}_dropzone")
  add: (e, data) ->
    # Upload the file using the external upload form with the proper form action and fields
    $rootPhotoUploadForm.fileupload('add', { files: [file], child_id: child_id })

基本上,我使用jQuery-File-Upload的API从外部上传表单上传文件。

请注意,当在外部上传表单上触发“添加”时,我会包含child_id ,以便我知道哪个子级已触发文件上传。 该值在每个回调中的data变量中可用。

因为有很多特定于应用程序的代码,所以我抽象了很多,希望你能从中找出它。

链接地址: http://www.djcxy.com/p/57115.html

上一篇: How do I use jQuery FIle Upload in a nested form?

下一篇: Spring batch with Annotation