ウェブページで複数ファイルのアップロードを作るために、Plupload(互換性のためにHTML4バージョン)というJqueryプラグインを使うことにしました。基本的に機能していますが、動的にアップロードディレクトリーを選択したいと思います。Javascriptにあまり詳しくなくて、どうやってその機能を加えればいいのか困っています。
実装したい機能:
ユーザーが「category」フィールドからカテゴリーを選択して、選択されたカテゴリーをもとに異なるディレクトリーにアップロードされます。
例えばcategoryAを選択すれば、ファイルは/uploads/categoryA/(ユーザ名)/というディレクトリーにアップロードされます。
categoryBを選択すれば、ファイルは/uploads/categoryB/(ユーザ名)/というディレクトリーにアップロードされます。
などなど
こちらのプラグインを使ったことのある方がいらっしゃいましたら、実装の方法について教えていただきたいのですが。
宜しくお願いいたします。
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']なりで受けとってアップロード先を決定する処理に回せばいいかと思います。
ご回答ありがとうございます
お礼が遅くなってすみません。ご指定された方法で試します。試してからまた質問があれば、お手間をおかけしますが、またこちらで聞かせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- Windows 10 windowsのファイル複数選択について エクスプローラーなどでファイルを複数選択する際、 最初のフ 4 2022/05/22 16:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/21 16:01
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(クラウドサービス・オンラインストレージ) Googleフォト 「保存容量の節約画質」は、アップロード済みの写真にも適用される? 1 2023/03/06 22:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASPでエクセルの起動
-
PHPとjavascriptで共通なエンコ...
-
ASPでグラフ表示方法
-
Session切れ前にWarningメッセージ
-
正整数の半角数字かどうか判定する
-
JavaScriptでテキス...
-
「終了していない文字列型の定...
-
ASP(VBS) ←→ JavaScript の変数...
-
VB.NET2003 テキストボックスに...
-
Vba SelStart、SelLen教えてく...
-
JSPの処理の途中で、JavaScript...
-
Ajax以外で、JavaScriptからPHP...
-
「光の三原色」みたいな「三つ...
-
Javascriptエラーの原因が分か...
-
csvファイルを読み込み、該当項...
-
Win版IllustratorCS3でJavascri...
-
VBScript から JavaScript を呼...
-
初心者です。gulpでコンパイル...
-
C#でボタン名を変更しても動く
-
時間稼ぎの命令文とは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptの負荷について
-
仮アップ?
-
PHPとjavascriptで共通なエンコ...
-
Session切れ前にWarningメッセージ
-
独自の検索エンジンを作るには!?
-
JavaScriptを使用して、クライ...
-
リアルタイム表示ホームページ...
-
ASPによるEXCELファイルの操作
-
PHPができればJavaScriptは...
-
ASPでエクセルの起動
-
PHPとJavaとC#の違い
-
Node.jsのWebプログラム(javasc...
-
外部リンクのクリック数を表示...
-
CGIとJavascriptの違いについて
-
プルダウンリストを作りMySQLか...
-
JavaScriptの便利なところ
-
ASPでグラフ表示方法
-
CSJSとSSJSの違い
-
IEでalertのみを無効にする方法...
-
XMLHttpRequestのレスポンスが...
おすすめ情報