Как отправить дополнительные данные с помощью 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} }); 

То, что я пытаюсь достигнуть, – у меня есть папка на моем сервере, где сохраняются все закачки. Я запишусь внутри папки, чтобы создать подпапку для каждого пользователя, у которого есть загруженные файлы. Как я могу добавить данные, такие как идентификатор пользователя, в экземпляр 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" должно быть объявлено в конфигурации uploader:

 multipart_params : { "name1" : "value1", "name2" : "value2" } 

Вы также можете использовать

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

и просто передайте его как переменную get.

Если вам нужно динамически добавлять параметры при каждой загрузке файла, вы можете сделать это:

 uploader.bind('BeforeUpload', function(up, file) { up.settings.multipart_params = { "parameter1": "value1", "paremeter2": "value2" }; });