前台页面提交文件
<!DOCTYPE html>
<html>
<head><meta name="viewport" content="width=device-width" /><title>文件操作</title></head><body><form id="upFileForm"><div style="margin:30px;"><span style="margin-right:10px;">上传文件</span><input type="file" name="UpFile" id="UpFile" style="width:12%;" /><input type="button" οnclick="upFile()" value="确认上传" /></div></form><script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.form.js"></script><script>
//上传文件
function upFile() { var file = document.getElementById("UpFile").files[0];if (!file) { alert("请选择文件!");return;}var size = file.size / 1024 / 1024;if (size > 50) { alert("图片文件不能大于50M");return;}$("#upFileForm").ajaxSubmit({ url: "/File/UploadFile",type: "post",dataType: "json",success: function (data) { if (data == "" || data == "0") { alert("上传失败");}if (data == "2") { alert("不支持上传该文件");} else { alert(JSON.stringify(data));}},error: function (aa) { alert(aa);}});}</script></body>
</html>
后台接收和上传
[HttpPost]
public JsonResult UploadFile(){ HttpRequest request = System.Web.HttpContext.Current.Request;HttpFileCollection FileCollect = request.Files;string path = "";//文件的完整路径//文件保存目录路径string imgPathName = DateTime.Now.ToString("yyyyMMdd");//以日期为文件存放的上层文件夹名string savePath = "/upload/file/" + imgPathName + "/";//文件存放的完整路径//如果文件路径不存在则创建文件夹if (!Directory.Exists(Server.MapPath(savePath))){ Directory.CreateDirectory(Server.MapPath(savePath));}//定义允许上传的文件扩展名Hashtable extTable = new Hashtable();extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2");if (FileCollect.Count > 0)//如果集合的数量大于0,多文件上传情况
{ foreach (string str in FileCollect){ HttpPostedFile imgFile = FileCollect[str];//用key获取单个文件对象HttpPostedFile string fileName = imgFile.FileName;//获取文件名string fileExt = Path.GetExtension(fileName).ToLower();//获取文件后缀名//判断文件类型是否正确if (Array.IndexOf(((string)extTable["file"]).Split(','), fileExt.Substring(1).ToLower()) == -1){ //文件类型不正确return Json("2");}string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");//文件别名string imgPath = savePath + imgName + "-" + imgFile.FileName;//构造文件保存路径 string AbsolutePath = Server.MapPath(imgPath);imgFile.SaveAs(AbsolutePath);//将上传的东西保存 path = imgPath;//获得文件完整路径并返回到前台页面}return Json(path);}else{ //上传失败return Json("0");}}