ashx灵活处理文件下载问题

简介:   新建一般处理程序 ,改下面的函数:         public void ProcessRequest(HttpContext context)         {             string filename;    ...

 

新建一般处理程序 ,改下面的函数:

        public void ProcessRequest(HttpContext context)
        {
            string filename;
            try
            {

                filename = context.Request["filename"].ToString();
            }
            catch
            {
                context.Response.Write("不正确的访问!");
                return;
            }

            string RealFile = context.Server.MapPath("~/Upload/files/" + filename);//真实存在的文件
            if (!System.IO.File.Exists(RealFile))
            {
                context.Response.Write("服务器上该文件已被删除或不存在!"); return;
            }
            context.Response.Buffer = true;
            context.Response.Clear();
            context.Response.ContentType = "application/download";
            string downFile=System.IO.Path.GetFileName(filename);//这里也可以随便取名
            string EncodeFileName = HttpUtility.UrlEncode(downFile, System.Text.Encoding.UTF8);//防止中文出现乱码
            context.Response.AddHeader("Content-Disposition", "attachment;filename=" + EncodeFileName + ";");
            context.Response.BinaryWrite(System.IO.File.ReadAllBytes(RealFile));//返回文件数据给客户端下载
            context.Response.Flush();
            context.Response.End();
        }
 

 

相关文章
|
7月前
|
机器学习/深度学习 JSON 前端开发
一篇文章讲明白dropzone上传文件
一篇文章讲明白dropzone上传文件
118 0
|
前端开发
前端常规关于网页文件下载的问题
前端常规关于网页文件下载的问题
74 0
|
8月前
|
JSON 前端开发 JavaScript
前端上传文件前检测文件数据🔍
前端上传文件前检测文件数据🔍
136 0
|
JSON 前端开发 JavaScript
前端下载二进制流文件
前端下载二进制流文件
367 0
|
API PHP
php函数API接口的一段代码,不为什么就是想放在这里
php函数API接口的一段代码,不为什么就是想放在这里
50 0
|
XML 存储 移动开发
前端文件下载的正确打开方式
前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。
188 0
|
前端开发 内存技术
继续啃boostrap上传组件的uploadify
不管在哪个系统中,上传肯定是必不可少的,上一篇文章中介绍了uploadify中typeaheader用法,但是仍然存在一些用法,例如,Ajax和上一篇文章中的方法都是在上传一张图片就刷新了,然而很多情况下是上传一堆图片之后才刷新,所以继续研究。
86 0
继续啃boostrap上传组件的uploadify
|
JavaScript 安全 内存技术