1.使用scriptData给后台传参数的时候,必须声明'method': 'GET',因为默认是POST
2.$("#uploadify").uploadifySettings('scriptData',{'name':'liudong','age':22});动态更新配置参数
$("#uploadify").uploadify ({
'uploader' : uploadify.swf',
'script' : '../upload/doUpload.jsp',
'scriptData' : {'name':'liudong','age': 20},
'method' : 'GET',
'onSelect' : function (event, queueID, fileObj){
$("#uploadify").uploadifySettings('scriptData',{'name':getName(),'age':getAge()});
}
});
或者在成功执行后的方法onComplete中动态设置参数:
onComplete: function (event, queueID, fileObj, response, data) {
var value = response ;
$("#uploadify").uploadifySettings('scriptData',{'name':'liudong','age':value}); }
springMVC方式上传:
页面和其他两种方式一样,不需要改动,主要是后台action,增加参数MultipartFile uploadify(spring会自动帮我们封装);
例如:action处理中的上传处理方法为
@RequestMapping(method = RequestMethod.POST, params = "action=upload")
public String doPost(ModelMap model, MultipartFile uploadify,BindingResult result) {
//上传文件名,要考虑编码问题,ajax默认上传UTF-8
String fileName = file.getOriginalFilename();
//有了文件流和文件名,接下来怎么做就不多说了
//。。。
}
这里有必要提一下的是,传参的问题,如果是动态传参,简单的说就是页面你填写的信息,要和文件一起上传,就是动态传参:
例如:
一般上传的onclick方法:
jQuery('#uploadify').uploadifyUpload();
动态传参的onclick方法:
$('#uploadify').uploadifySettings('scriptData',{'bizType':$('#bizType').val(),'providerCode':$('#providerCode').val(),'subProviderCode':$('#subProviderCode').val(),'budgetInst':$('#budgetInst').val(),'memo':$('#memo').val()});jQuery('#uploadify').uploadifyUpload()
简单的说,就是用uploadifySettings函数在提交之前注入了参数。