public ActionResult Download(string url,string fileName) { if (!url.Contains("UploadFiles")) //保证是从这个文件目录下载 { return Content("下载路径不正确!"); } var filePath = Server.MapPath(url); if (System.IO.File.Exists(filePath)) //判断文件是否存在 { try { FileStream fs = new FileStream(filePath, FileMode.Open); byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); Response.Charset = "UTF-8"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(fileName)); //以流媒体形式下载 Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } catch (Exception ex) { return Content("下载失败,"+ex.Message); } } else { return Content("文件路径不存在!"); } return new EmptyResult(); }
其实最开始图省事是直接打开url的形式,但是浏览器对一些后缀文件有限制,所以就写了此段下载的代码。
供参考!