首先下载这个 ajaxfileupload.js 文件 : https://github.com/carlcarl/AjaxFileUpload

这个js是支持向后台传递参数的版本, 其他的不行。

向后台传递参数的基本用法: 

$.ajaxFileUpload(

{

url: '/controller/action',

secureuri: false,

data: {

'name': 'Tom', //'参数名称':'参数值'

},

...

...

}

举个例子, HTML部分:

名字:

文件:

下面是后台 controller的action :

public ActionResult action(string name)

{

string strName = name;//接收参数

HttpFileCollectionBase files = Request.Files;//接收文件

if (!string.IsNullOrEmpty(files[0].FileName))

{

string filename = Path.GetFileName(files[0].FileName);//客户端上传的本地文件名

//filename = DateTime.Now().ToString("yyyyMMddHHmmssff") + ".xlsx"; //保存在服务器上的文件名

string fullPath = Server.MapPath("/") + "\\xlsx\\Temp\\" + filename;//路径+文件名

files[0].SaveAs(fullPath);//写入到服务器

DataTable dt = ExcelHelper.ExcelToDataTable(fullPath);

}

}

附录, ajaxfileupload.js​ 的源码, 支持data传递参数:

jQuery.extend({

createUploadIframe: function(id, uri)

{

//create frame

var frameId = 'jUploadFrame' + id;

if(window.ActiveXObject) {

var io = document.createElement('