我如何使用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