asp.net文件下载,实现隐藏文件下载地址
2012-06-07 01:42
411 查看
文件下载其实很简单。最简单的方式就是直接用a标签指向文件地址,但是这种方式暴露了文件的地址,不适合做积分下载。同时,如果文件为图片或者xml文件的话浏览器默认是打开文件而不是弹出下载窗口。
第二种就是用js实现。
第三中就是通过服务器端更改Response 的Header实现文件的下载。
第二种就是用js实现。
function getFile(id) { jQuery.ajax({ type: "POST", dataType: "json", timeout: 3000, url: "/upload/ajax.aspx?act=getfile&r=" + Math.random(), data: { "id": id }, beforeSend: function () { }, success: function (data) { if (data.statu != "ok") { alert(data.msg); } else { window.location.href = data.res; } }, error: function (jqXHR, textStatus, errorThrown) { alert(alert(textStatus)); } }); }这种的原理也跟第一种是一样的。虽然实现了隐藏下载地址,但是,同样的如果文件是图片也会出现第一中方式中提到的问题。
第三中就是通过服务器端更改Response 的Header实现文件的下载。
// GET: /Downoad/ public ActionResult Index() { #region 文件下载 var filePath = Server.MapPath("/images/Razor.pdf");//文件地址 FileInfo fi = new FileInfo(filePath); Response.ClearHeaders(); Response.AppendHeader("Content-Disposition", "attachment;filename=" //将文件名改成Guid + string.Format("{0:n}{1}", System.Guid.NewGuid(), fi.Extension)); //文件的大小 Response.AddHeader("Content-Length", fi.Length.ToString()); Response.AppendHeader("Last-Modified", fi.LastWriteTime.ToFileTime().ToString()); Response.AppendHeader("Location", Request.Url.AbsoluteUri); //文件的类型。如:pdf文件为:"application/pdf", //此处为"application/unknown" 未知类型(浏览器会根据文件类型自动判断) Response.ContentType = "application/unknown"; Response.WriteFile(filePath); #endregion //Response.End(); return View(); }运行效果:
相关文章推荐
- Asp实现隐藏文件下载地址方法
- ASP.NET实现下载地址隐藏和简单防盗链
- Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
- Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)
- anp.net文件下载,实现隐藏文件地址
- 引用 Asp.net下实现隐藏真实下载地址(可以实现简单的防盗链)(转载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- ASP.NET 实现文件下载的几种方法
- iOS开发之结合asp.net webservice实现文件上传下载
- ASP.NET利用HttpHandler实现多扩展名文件下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现
- asp.net中实现文件下载功能
- ASP.NET实现批量下载文件及附件的方法详细讲解
- 移动项目开发笔记(asp.net中Response.WriteFile()实现文件下载)
- ASP.NET中实现文件的保护性下载基础篇
- asp.net C#后台实现下载文件的几种方法
- asp.net 文件下载实现代码
- 拥有网页版小U盘 ASP.NET实现文件上传与下载功能
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)