for (int i = 0; i < fileCount; i++)
{
var file = Request.Files[i];
if (file == null || string.IsNullOrEmpty(file.FileName)) { continue; }
var fileName = file.FileName;
var fileNewName = DateTime.Now.Ticks + fileName;
sbLog.AppendFormat("第:{0}个文件名称:{1}新名称:{2}下载地址:<a href='{3}' target='_blank'>{2}</a><br/>", i + 1, fileName, fileNewName, string.Format(path, fileNewName));
file.SaveAs(Path.Combine(uploadPath, fileNewName));
response.Status = 1;
}
}
catch (Exception ex)
{
sbLog.AppendFormat("异常信息:{0}", ex.Message);
}
finally
{
response.Data = sbLog.ToString();
}
return Json(response);
}
下面我们看一下添加”提交”按钮执行后返回的效果,可以看出提交后没有跳转到action指向的路由,这样用户体验就好多了:

. 示例D – 自定义上传插件,Request.Files获取上传文件并提交表单内容
首先,我发个插件下载地址shenniu.upfile-0.0.1.js,只需要在试图或者html页面引用jquery-1.10.2.min.js库和这个插件,我们就可以这样使用:
<script>
$(function () {
//示例D代码
//初始化插件
var shenniu = new shenniu_UpFile({
url: "/Error/D_A",
fileEleName: "filesd"
});
//提交事件
$("#form_d button[type='button']").click(function () {
var msg = $("#msg_d");
var btnSave = $(this);
btnSave.attr("disabled", "disabled");
msg.html("上传中..");
//上传文件
shenniu.submitFun(function (data) {
try {
var result = JSON.parse(data);
//上传成功,保存数据
if (result.Status == 1) {
//增加上传成功的文件名称到表单
var hidFileNames = $("#form_d input[name='hidFileNames']");
if (hidFileNames.length <= 0) { $("#form_d").append("<input type='hidden' name='hidFileNames' value='" + result.Data + "'/>");
else {
hidFileNames.val(result.Data);
}
//获取表单键值对,提交表单数据
var param = $("#form_d").serialize();
var action = $("#form_d").attr("action");
$.post(action, param, function (res) { msg.html(res.Status == 1 ? "保存成功<br/>" + res.Data : "保存失败");
});
} else {
msg.html(result.Data);
}
} catch (e) {
console.log(e.message);
} finally {
btnSave.removeAttr("disabled");
}
});
});
})
</script>
使用插件的地方和js关键点已经通过代码注释备注好了,朋友们可仔细阅读下,这里要将的是插件上传文件和提交表单数据的逻辑;我们分析下:










