• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Plupload(jqueryプラグイン)について)

Plupload(jqueryプラグイン)を使用した複数ファイルのアップロード方法

このQ&Aのポイント
  • ウェブページで複数ファイルのアップロードを作成するためには、Plupload(互換性のためにHTML4バージョン)というJqueryプラグインを使用することができます。
  • Pluploadを使用することで、動的にアップロードディレクトリーを選択する機能を追加することも可能です。
  • 具体的には、ユーザーが「category」フィールドからカテゴリーを選択すると、選択されたカテゴリーに基づいて異なるディレクトリーにファイルがアップロードされます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

このプラグインを使ったことはありませんがサーバのディレクトリにアップロードするということであれば、アップロード先のディレクトリを動的に変更するのはサーバ側のプログラムの仕事になります。 アップロード先ディレクトリを決定する処理はサーバ側のプログラムに書き、決定するための要因となるデータをクライアント側から渡してやります。 クライアントからサーバにデータを渡す方法としては、ユーザーがフォーム要素を使って選択するということなのでHTTPリクエスト(GET,POST)のパラメータを使用すればいいと思います。 ただ、サーバに(パラメータで)渡したデータをサーバ側で入力検証などを行わずにそのまま使用するのは危険なので、安全にアップロード先を決定する処理が必要になります。 基本的にはjavascriptを使う必要はありませんが、クライアント側でさせたい動作によります。 公式のサンプルを例に修正してみるとこんなかんじでどうでしょうか。 http://www.plupload.com/example_queuewidget.php <form> <div id="uploader"> <p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p> </div> <!-- カテゴリを選択するためのセレクタを追加 --> <select name="cagegory"> <option val="foo">foo</option> <option val="bar">bar</option> </select> </form> このソースの47行目~のコードの中にある $('form').submit() が実行された時に上で追加したセレクト要素の値がHTTPリクエストのパラメータとしてサーバ側のプログラムに送られます。 // When all files are uploaded submit form uploader.bind('UploadProgress', function() { if (uploader.total.uploaded == uploader.files.length) $('form').submit(); // <- フォーム送信処理 }); サーバー側のプログラムがPHPなら$_POST['category']なりで受けとってアップロード先を決定する処理に回せばいいかと思います。

2B2B
質問者

お礼

ご回答ありがとうございます お礼が遅くなってすみません。ご指定された方法で試します。試してからまた質問があれば、お手間をおかけしますが、またこちらで聞かせていただきます。

2B2B
質問者

補足

ご提案された方法を基に、いろいろ工夫してやっとできました。 本当にありがとうございます。

関連するQ&A