web-dev-qa-db-ja.com

PLuploadを使用して追加データを送信する方法は?

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でフォームを表示できますか?または、これを達成できる他の方法はありますか?

40
eric.itzhak

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のドキュメントは、これらの設定のいくつかについては少しまばらです。

72
elconejito

uploader.settings.multipart_params["name1"] = yourValue;を使用できますが、"name1"はアップローダーの構成で宣言する必要があります。

multipart_params : {
    "name1" : "value1",
    "name2" : "value2"
}
6
pb ty

使用することもできます

uploader.settings.url = "upload.php?param1=whatever"

取得変数として渡すだけです。

3
Briscoe

ファイルをアップロードするたびにパラメータを動的に追加する必要がある場合は、次を実行できます。

uploader.bind('BeforeUpload', function(up, file) {
    up.settings.multipart_params = {

        "parameter1": "value1",
        "paremeter2": "value2"

    };
});
3
Agu Dondo