怎样在asp.net中用一般处理文件ashx实现下载功能

我通过ajax将文件的完整名称作为参数传入到ashx处理文件中,现在想通过这个一般处理文件,将传入的文件下载下来,这个该怎么实现?
最好贴上代码
非常感谢!!!

01.<%@ WebHandler Language="C#" Class="download" %>
02.using System;
03.using System.Web;
04.public class download : IHttpHandler {
05.
06. public void ProcessRequest (HttpContext context) {
07. string url = HttpContext.Current.Server.UrlDecode(context.Request.QueryString["url"]);
08. downloadfile(url);
09. }
10.
11. public bool IsReusable {
12. get {
13. return false;
14. }
15. }
16. public void downloadfile(string s_fileName)
17. {
18. HttpContext.Current.Response.ContentType = "application/ms-download";
19. string s_path = HttpContext.Current.Server.MapPath("~/") + s_fileName;
20. System.IO.FileInfo file = new System.IO.FileInfo(s_path);
21. HttpContext.Current.Response.Clear();
22. HttpContext.Current.Response.AddHeader("Content-Type", "application/octet-stream");
23. HttpContext.Current.Response.Charset = "utf-8";
24. HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(file.Name, System.Text.Encoding.UTF8));
25. HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString());
26. HttpContext.Current.Response.WriteFile(file.FullName);
27. HttpContext.Current.Response.Flush();
28. HttpContext.Current.Response.Clear();
29. HttpContext.Current.Response.End();
30. }
31.}追问

这样写的话我测试了下,没反应
用ajax传过来文件fullname经过这样处理之后,在客户端页面中的ajax回调函数中是不是要做什么操作才行?
我现在是这样写的:
$.post("ajax/DownloadFileHandler.ashx",{"filePath":filePath},function(data,status){});

追答

不用。07行改为 string url = HttpContext.Current.Server.UrlDecode(context.Request.QueryString["filePath"]);
试下

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-15
请问一下您的问题是怎么解决的,谢谢

怎样在asp.net中用一般处理文件ashx实现下载功能
18. HttpContext.Current.Response.ContentType = "application\/ms-download";19. string s_path = HttpContext.Current.Server.MapPath("~\/") + s_fileName;20. System.IO.FileInfo file = new System.IO.FileInfo(s_path);21. HttpContext.Current.Response.Clear();22. HttpConte...

B\/S上,后台ashx实现多个文件的下载
曾经做过一个类似的,前端做请求的时候,根据下载资源的数量生成等量的进度条,为每个进度条配属相应的Ajax请求,从第一个资源开始请求->服务器端整理打包->第二个请求开始->服务器端整理打包...,最终再把所有的资源打到一个包里面。其实还是把所有的文件打包再下载,但是用户体验稍微好一些。

怎么在asp.net中点击一个链接下载一个准备好的pdf文件?
最简单的没有安全控制的方式: 中日交流电子书 如果需要权限控制的话,可以做成用一个ashx来处理的方式,在这个ashx的作用就是读取对应的的电子书文件,供下载。实现方式你可以找对应的代码,这里我就不列出了。

.net 怎么调用ashx文件的方法,方法中包含一些参数。该ASHX返回一张图片...
一般处理文件(ASHX)是可以通过前台调用的,你可以使用如: 这种方试直接调用这个返回图片的ASHX文件。ASHX文件如下:\/\/ 这个方法就是ASHX文件的入口点,建议在这里进行参数处理 public void ProcessRequest(HttpContext context){ \/\/定议图片大小 int widthtmp = 50;int Heighttmp = 50;if (context.Requ...

vs2010的asp.net项目中如何创建.ashx页面
新建一个网站——右键该网站,添加新项——一选择 一般处理程序 就会自动添加一个Handler.ashx文件

asp.net问题ashx文件有什么用
引自网络... --- ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取 在ASP.NET Person Web Site Starter Kits中,图片的是以二进制的形式存放在数据库里,微软提供的读取该图片的方式是通过handler.ashx来实现的. 首先你所看到的对图片的引用都是类似如下 <img src="Handler.ashx?

ashx是什么文件
并返回相应的数据。通过这种方式,ashx文件可以与其他Web技术结合使用,以实现更复杂的Web应用程序功能。总结来说,ashx文件是ASP.NET中用于处理动态Web请求的灵活工具。它们通过执行特定的代码逻辑来生成响应数据,并返回给客户端。由于其高效和灵活的特性,ashx文件在Web开发中有着广泛的应用。

ashx是什么文件
ashx文件具体解释如下:ashx文件的定义 ashx文件是ASP.NET中的一种动态Web文件,也被称为HTTP处理程序。它是用来处理特定的HTTP请求和响应的服务器端脚本文件。通过ashx文件,开发者可以创建自定义的HTTP处理程序来扩展Web应用程序的功能。ashx文件的作用 在ASP.NET应用程序中,ashx文件主要用于处理特定的HTTP...

请问ASP.NET WebForm如何实现定时自动提交表单并保存到数据库,然后刷新...
1、建立一个一般处理程序(.ashx后缀),这程序里面写获取From表单的数据和提交的数据库中的方法和一个获取最新插入数据的方法2、使用HTML的定时触发,如:setTimeout3、在定时触发的方法里面写一个Ajax来调用一般处理程序即可(这里可以用Ajax的from表单提交)$.ajax({ cache: true, type: "POST...

asp.net,ajax+一般处理程序,5秒获取一次,固定会周期性的卡
会给服务器造成很大的负担卡顿什么的就不足为奇了。解决一:把轮训的间隔设置的长一点,最好是一分钟以上 解决二:如果实时性要求比较高的话最好还是用其他解决方案。比如html5的websocket(。net有开源的SuperWebSocket),或者是flex和silverlight等富客户端来实现socket通信,直接由服务器推送。

相似回答