2016-03-03 63 views
1

我的项目是MVC 5我正在使用jquery.fileupload想知道我可以传递额外的值到控制器,在这种情况下是文件描述。 查看:Jquery Fileupload - Ajax传递其他变量

<i class="glyphicon glyphicon-plus"></i> 
    <span>Add files...</span> 
    <input id="fileupload" type="file" name="files[]" multiple> 

</span> 
<input id="description" name="description" value="description" /> 

脚本:

$(document).ready(function() { 
     var description = $("#description").val(); 
     $('#fileupload').fileupload({ 
      dataType: 'json', 
      url: '/Home/UploadFiles', 
      autoUpload: true, 
      done: function (e, data) { 
       $('.file_name').html(data.result.name); 
       $('.file_type').html(data.result.type); 
       $('.file_size').html(data.result.size); 
      } 
     }).on('fileuploadprogressall', function (e, data) { 
      var progress = parseInt(data.loaded/data.total * 100, 10); 
      $('.progress .progress-bar').css('width', progress + '%'); 
     }); 
    }); 

控制器:

public ContentResult UploadFiles() 
     { 
      var r = new List<UploadFilesResult>(); 

      foreach (string file in Request.Files) 
      { 
       HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase; 
       if (hpf.ContentLength == 0) 
        continue; 

       string savedFileName = Path.Combine(Server.MapPath("~/App_Data"), Path.GetFileName(hpf.FileName)); 
       hpf.SaveAs(savedFileName); 

       r.Add(new UploadFilesResult() 
       { 
        Name = hpf.FileName, 
        Length = hpf.ContentLength, 
        Type = hpf.ContentType 
       }); 
      } 
      return Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json"); 
     } 
+0

从[dcumentation](https://github.com/blueimp/jQuery-File-Upload/wiki/How-to-submit-additional-form-data) - 'formData:{example:'test'} ' –

回答

2

您可以发送更多数据来使用formData财产服务器。 见下文:

$('#fileupload').fileupload({ 
    formData: { 
     param1: 'test2', 
     param2: "test3", 
     param3: "test3" 
    } 
}); 

formData选项可用于以编程方式设置附加的形式的数据。

+0

谢谢你Ankush;我如何检索控制器中的值。 – hncl

+0

@hncl,将你的方法改为'public ContentResult UploadFiles(IEnumerable files,string param1,string param 2 ....)' - 即为你添加与参数名相匹配的参数。 –