给ajaxfileupload上传文件时增加一些参数

前端之家收集整理的这篇文章主要介绍了给ajaxfileupload上传文件时增加一些参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ajaxfileupload是一个jquery的文件上传插件,可以利用ajax无刷新上传文件到服务器。其实现原理为:利用js动态创建一个表单,并提交。但默认情况下,该插件只能上传一个文件,且不能携带其它参数。有时候,我想给在上传文件的同时,还带一个参数,用来表示将文件上传到哪个目录下。下面的修改就可以实现这个功能

1、调用插件的地方,加上参数

$.ajaxFileUpload({
	            url:"${ctx}/tmsReceiver/doUpload.do",// 用于文件上传的服务器端请求地址
	            secureuri:false,// 一般设置为false
	            fileElementId:"fileUpload",// 文件上传空间的id属性  <input type="file" id="file" name="file" />
	            dataType: "json",// 返回值类型 一般设置为json
	            params:{"side":side,"identityNum":$("#identityNum").val()},success: function(data){...

2、修改插件代码
在ajaxfileupload.js中调用创建表单的函数处,增加一个参数:

var form = jQuery.createUploadForm(id,s.fileElementId,s.params);

3、修改createUploadForm函数

createUploadForm: function(id,fileElementId,params)
 {
  //create form 
  var formId = 'jUploadForm' + id;
  var fileId = 'jUploadFile' + id;
  var form = jQuery('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>'); 
  var oldElement = jQuery('#' + fileElementId);
  var newElement = jQuery(oldElement).clone();


  jQuery(oldElement).attr('id',fileId);
  jQuery(oldElement).before(newElement);
  jQuery(oldElement).appendTo(form);
  for(var key in params){
	  var property = '<input type="text" name="'+key+'" value="'+params[key]+'">';
	  $(property).appendTo(form);  
 }...

猜你在找的Ajax相关文章