3

いくつかの余分なフォーム データが含まれているマルチ ファイル アップロード ソリューションを作成して運が良かった人はいますか? したがって、この例では、ワークフローは次のようになります。

  1. ユーザーがファイルの追加/アップロード ボタンをクリックする
  2. ユーザーがファイル ピッカーから 1 つ以上のファイルを選択する
  3. いくつかのアイテムがアップロード キューに追加されます
  4. 各キュー アイテムには、追加のユーザー入力フィールドがあります。例: 画像/ビデオのタイトル
  5. ユーザーがアップロードを押すと、リクエストがサーバーに送られます

私がやろうとしていることのほとんどは、uploadify や Jquery アップロードなどで実行できますが、良い解決策が見つからない部分が 1 つあります。

問題を引き起こしているのはステップ 4 です。uploadify では、項目テンプレートを設定できるので、実際にフォーム要素を問題なく追加できることに気付きました。

フォームが送信されたときに問題が発生します。イベントを発生させたり、ポストバックのためにそのフォームデータをどこにでも戻すことができないようです。

誰かがこれをやってのけたか、これの解決策を手伝ってくれましたか? 私はうまくいくものなら何でも受け入れます....

前もって感謝します ...

4

1 に答える 1

4

JQuery-Upload でこれを完全に行うことができます。強制するだけです。コントロールは、要求をサーバーに送信するために使用されるデータ オブジェクトを返す追加イベントを発生させます。Add は、キューにアイテムが追加されるたびに 1 回呼び出されます。完全なデモはありませんが、要点は次のとおりです...

まず、この記事のほとんどの手順に従います。

https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data

ここで、次のことを検討してください。

  1. 記事で説明されているように、行テンプレートをカスタマイズします。

  2. コントロールの追加イベントをキャプチャし、追加イベントから返されたデータ項目をリストに入れます。

  3. フォーム上のボタンのクリックをキャプチャし、デフォルト アクションを防止してから、ステップ 2 でキャプチャされたリスト内の各項目に対して data.submit を呼び出します。

それで、このコーヒースクリプトの例のようなもの...

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
于 2013-02-16T10:15:33.073 に答える