Как отправить дополнительные данные с помощью 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?
Или есть другой способ, которым я могу это достичь?
Ответы
Ответ 1
Вы пытались использовать настройку для 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 для некоторых из этих настроек немного редка.
Ответ 2
Вы можете использовать uploader.settings.multipart_params["name1"] = yourValue;
, но "name1"
должен быть объявлен в конфигурации загрузчика:
multipart_params : {
"name1" : "value1",
"name2" : "value2"
}
Ответ 3
Вы также можете использовать
uploader.settings.url = "upload.php?param1=whatever"
и просто передайте его как переменную get.
Ответ 4
Если вам нужно динамически добавлять параметры для каждой загрузки файла, вы можете сделать это:
uploader.bind('BeforeUpload', function(up, file) {
up.settings.multipart_params = {
"parameter1": "value1",
"paremeter2": "value2"
};
});