带附加表单数据的JQuery多文件上载

带附加表单数据的JQuery多文件上载,jquery,file-upload,Jquery,File Upload,有没有人有幸创建了一个包含一些额外表单数据的多文件上传解决方案。在这个例子中,工作流是这样的 用户单击添加文件/上载按钮 用户从文件选择器中选择一个或多个文件 几个项目被添加到上载队列中 每个队列项目都有一个附加的用户输入字段。e、 g.图像/视频的标题 用户点击upload,请求就会转到服务器 我尝试做的大部分工作都可以通过uploadify或Jquery upload之类的方式完成,但有一部分我似乎找不到一个好的解决方案 是第四步造成了麻烦。在uploadify中,我注意到您可以设置一个条目

有没有人有幸创建了一个包含一些额外表单数据的多文件上传解决方案。在这个例子中,工作流是这样的

  • 用户单击添加文件/上载按钮
  • 用户从文件选择器中选择一个或多个文件
  • 几个项目被添加到上载队列中
  • 每个队列项目都有一个附加的用户输入字段。e、 g.图像/视频的标题
  • 用户点击upload,请求就会转到服务器
  • 我尝试做的大部分工作都可以通过uploadify或Jquery upload之类的方式完成,但有一部分我似乎找不到一个好的解决方案

    是第四步造成了麻烦。在uploadify中,我注意到您可以设置一个条目模板,这样我就可以实际添加表单元素了

    当表单提交时,问题就开始了,我似乎无法获取事件,也无法以任何方式将表单数据设置回任何位置以供回发

    有没有人做到了这一点,或者能够帮助解决这个问题。我对任何有用的东西都持开放态度


    提前感谢…

    您完全可以通过JQuery上传来实现这一点,这只需要一些强制。该控件触发一个add事件,该事件返回用于向服务器提交请求的数据对象。对添加到队列中的每个项目调用一次Add。我没有一个完整的演示,但这里是它的要点

    首先,请遵循本文中的大部分步骤:

    现在考虑以下事项:

  • 如本文所述,自定义行模板

  • 捕获控件的添加事件,并将从添加事件返回的数据项放入列表中

  • 捕获表单上某个按钮的单击,防止对其执行默认操作,然后调用data.submit以获取在步骤2中捕获的列表中的每个项目

  • 比如这个咖啡脚本的例子

    jQuery ->
    
      queueItems = new Array()
    
      $('#my_upload').fileupload
    
        add: (e, data) ->
            # after doing any other processing needed, keep a list of the data objects added
            queueItems.push(data)
    
        $('#form_submit').click (event) =>
    
          # don't do the default action
          event.preventDefault()
    
          for data in queueItems
    
            # get the inputs from the row associated with this item in the queue
            inputs = data.context.find(':input')
    
            # get any other general hidden inputs from the page you want associated with the row.
            # merge keeps the jquery search results in a format that works with serializeArray
            inputs = $.merge(inputs, $("#some_field"))
    
            # set the form data for the request
            data.formData = inputs.serializeArray();
    
            #submit it
            data.submit()
    
          # reset the queue so if the user add's more items we don't submit twice
          queueItems.length = 0
    

    您在jquery文件上传方面做了哪些尝试?()我将在下面作出回应,我在js中使用了一些强制操作,使其工作得非常干净。在某些情况下,此逻辑失败:(