文件下载的两种方法

public void ExcelModel()   
        {
            var filePath = Server.MapPath(@"~/ExcelModel/表格模板.xls");
            var name = Path.GetFileName(filePath);

            FileStream fs = new FileStream(filePath, FileMode.Open); 
            byte[] bytes = new byte[(int)fs.Length];

            fs.Read(bytes, 0, bytes.Length);
            fs.Close();

            Response.ContentType = "application/vnd.ms-excel";//MIME
            Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(name, System.Text.Encoding.UTF8));
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();
        }

 

 public ActionResult ExcelModel()
        {
            var path = Server.MapPath(@"~/ExcelModel/表格模板.xls");
            var name = Path.GetFileName(path);
            return File(path, "application/vnd.ms-excel", Url.Encode(name));
        }

 

文件下载不可以使用ajax方式

发布出去的网站,对于静态的文件,如:pdf,word,excel等。如果直接通过地址访问,因为浏览器解析不了这种文件,就采用下载的方式处理。我们看到浏览器下载文件,这是个表面现象,浏览器想说的是,我处理不了它。那么在我们执行某些下载操作的时候,只要通过windows.location.href或给框架地址,这些地址指向文件,那么浏览器就可以给我们下载文件了。

你可能感兴趣的:(文件下载)