MVC+API 下载文件

API页面

API接口代码

API后台代码以下代码可复制

public class DownloadController : ApiController

    {

        [HttpGet]

        public HttpResponseMessage DownloadFile(string Url)

        {

            //将虚拟路径转化为物理路径

            string filePath = HttpContext.Current.Server.MapPath(Url);

            //前端浏览器提示要下载的文件名

            string fileName = "仙女.png";

            FileInfo fileInfo = new FileInfo(filePath);

            //响应消息

            HttpResponseMessage msg = new HttpResponseMessage(HttpStatusCode.OK);

            if (fileInfo.Exists)

            {

                FileStream fileStream = new FileStream(filePath, FileMode.Open,FileAccess.ReadWrite);

                //MemoryStream memoryStream = new MemoryStream();

                ////将流赋值到内存流

                //fileStream.CopyTo(memoryStream);

                //赋予响应正文

                msg.Content = new StreamContent(fileStream);

                #region 这两个是提示浏览器下载

                msg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")

                {

                    FileName = fileName

                };

                //msg.Content.Headers.Add("Content-Disposition", "attachment;filename=" + fileName);

                //指定媒体类型

                msg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

                #endregion

            }

            return msg;

        }

    }

MVC页面

MVC前台

前台代码(以下可复制)

@{

    Layout = null;

}

   

    Api_DownloadFileIndex

   

        嘻嘻,羡慕吧

        下载文件

   

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