我正在使用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中看到它? 还是有其他方法可以实现这个目标吗?
答案 0 :(得分:72)
您是否尝试过使用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的文档有点稀疏。
答案 1 :(得分:6)
您可以使用uploader.settings.multipart_params["name1"] = yourValue;
,但必须在上传器配置中声明"name1"
:
multipart_params : {
"name1" : "value1",
"name2" : "value2"
}
答案 2 :(得分:3)
您也可以使用
uploader.settings.url = "upload.php?param1=whatever"
并将其作为get变量传递。
答案 3 :(得分:3)
如果您需要在每个文件上传中动态添加参数,您可以执行以下操作:
uploader.bind('BeforeUpload', function(up, file) {
up.settings.multipart_params = {
"parameter1": "value1",
"paremeter2": "value2"
};
});