eri*_*hak 40 php upload jquery 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}
});
Run Code Online (Sandbox Code Playgroud)
我想要实现的是我的服务器中有一个文件夹,其中保存了所有上传内容.我需要在文件夹中为每个在那里上传文件的用户创建一个子文件夹.如何将像用户的id这样的数据添加到plupload.Uploader的实例中?或者,如果我将一个表单包装在容器div中,我能否在$ _REQUEST中看到它?还是有其他方法可以实现这个目标吗?
小智 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"
}
});
Run Code Online (Sandbox Code Playgroud)
然后,您需要处理处理上载的文件中的值(默认情况下为upload.php).我认为这些值是由$_POST
你捕获的,但你可以使用$_REQUEST
它来确定.
我已经使用jQuery动态分配值,因此"name1" : "value1"
您可以使用类似"name1" : $("#name1").val(),
#name1可能是页面上其他位置输入的内容.
对于其中一些设置,Plupload的文档有点稀疏.
小智 7
您可以使用uploader.settings.multipart_params["name1"] = yourValue;
但"name1"
必须在上传器配置中声明:
multipart_params : {
"name1" : "value1",
"name2" : "value2"
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在每个文件上传时动态添加参数,您可以这样做:
uploader.bind('BeforeUpload', function(up, file) {
up.settings.multipart_params = {
"parameter1": "value1",
"paremeter2": "value2"
};
});
Run Code Online (Sandbox Code Playgroud)