plupload を使用して、ajaxファイルをアップロードしています。 plupload.Uploaderクラスには多くのオプションがありますが、追加データはありません。
例えば :
var uploader = new plupload.Uploader({
runtimes : 'gears,html5,flash,silverlight,browserplus',
browse_button : 'pickfiles',
container : 'contact_container',
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf',
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap',
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "Zip"}
],
resize : {width : 320, height : 240, quality : 90}
});
私が達成しようとしているのは、サーバーにすべてのアップロードが保存されているフォルダーがあることです。私は、フォルダ内にファイルをアップロードした各ユーザーにサブフォルダを作成するために必要でした。ユーザーのIDなどのデータをplupload.Uploaderのインスタンスに追加するにはどうすればよいですか?または、コンテナdiv内でフォームをラップする場合、$ _ REQUESTでフォームを表示できますか?または、これを達成できる他の方法はありますか?
Multipart_paramsの設定を使用してみましたか?次のように、plupload.Uploaderに追加オプションを追加します。
_var uploader = new plupload.Uploader({
runtimes : 'gears,html5,flash,silverlight,browserplus',
browse_button : 'pickfiles',
container : 'contact_container',
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf',
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap',
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "Zip"}
],
resize : {width : 320, height : 240, quality : 90},
multipart_params : {
"name1" : "value1",
"name2" : "value2"
}
});
_
次に、アップロードを処理するファイル(デフォルトではupload.php)の値を処理する必要があります。値は_$_POST
_によってキャプチャされると思いますが、念のため_$_REQUEST
_を使用できます。
JQueryを使用してその場で値を割り当てたため、_"name1" : "value1"
_の代わりに"name1" : $("#name1").val(),
のようなものを使用できます。#name1はページの他の場所の入力です。
Pluploadのドキュメントは、これらの設定のいくつかについては少しまばらです。
uploader.settings.multipart_params["name1"] = yourValue;
を使用できますが、"name1"
はアップローダーの構成で宣言する必要があります。
multipart_params : {
"name1" : "value1",
"name2" : "value2"
}
使用することもできます
uploader.settings.url = "upload.php?param1=whatever"
取得変数として渡すだけです。
ファイルをアップロードするたびにパラメータを動的に追加する必要がある場合は、次を実行できます。
uploader.bind('BeforeUpload', function(up, file) {
up.settings.multipart_params = {
"parameter1": "value1",
"paremeter2": "value2"
};
});