当前位置:编程学习 > C#/ASP.NET >>

谁知道CSDN下载是怎么做的,即在下载属性中不显示地址

谁知道CSDN下载是怎么做的,即在下载属性中不显示地址 --------------------编程问答-------------------- 我也想知道,留位 --------------------编程问答-------------------- URL重写 --------------------编程问答-------------------- 一般url是DownLoad.aspx?id=1234
根据这个id把文件的位置取出来,用file类,把这个文件读出来,然后写出来,用户就可以下载了(或者直接跳转到这个文件的位置,浏览器也会提示下载,不过这样的话可能用户就知道文件的位置了,以后就不会付费下载什么的)。我是这样写下载的 --------------------编程问答-------------------- 根据楼上方法,补充代码如下:

private void ReturnHTTPStream(string filePath)
    {
        FileInfo fi = new FileInfo(filePath);
        Response.ClearHeaders();
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fi.Name));
        Response.AddHeader("Content-Length", fi.Length.ToString());
        Response.AppendHeader("Last-Modified", fi.LastWriteTime.ToFileTime().ToString());
        Response.AppendHeader("Location", Request.Url.AbsoluteUri);
 
        Response.ContentType = GetResponseContentType(fi.Extension);
        Response.WriteFile(filePath);
        Response.End();
        
    }

    /// <summary>
    /// Handle the Document 
    /// </summary>
    /// <param name="fileType"></param>
    /// <returns></returns>
    private string GetResponseContentType(string fileType)
    {
        string result;
        switch (fileType.ToLower())
        {
            case ".doc": result = "application/msword"; break;
            case ".xls": result = "application/msexcel"; break;
            case ".txt": result = "text/plain"; break;
            case ".pdf": result = "application/pdf"; break;
            case ".ppt": result = "appication/powerpoint"; break;
            default: result = "application/unknown"; break;
        }
        return result;
    } --------------------编程问答-------------------- 谢谢LS小弟收藏了~1
嘿嘿 --------------------编程问答--------------------
引用 3 楼 gavin_luo 的回复:
一般url是DownLoad.aspx?id=1234 
根据这个id把文件的位置取出来,用file类,把这个文件读出来,然后写出来,用户就可以下载了(或者直接跳转到这个文件的位置,浏览器也会提示下载,不过这样的话可能用户就知道文件的位置了,以后就不会付费下载什么的)。我是这样写下载的


付费下载,呵呵,楼主想的和我要的一样啊

就是让用户不知道下载的URL --------------------编程问答-------------------- 路过 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 重定向 --------------------编程问答-------------------- mark --------------------编程问答--------------------
引用 4 楼 ttg520 的回复:
根据楼上方法,补充代码如下: 

private void ReturnHTTPStream(string filePath) 
    { 
        FileInfo fi = new FileInfo(filePath); 
        Response.ClearHeaders(); 
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(fi.Name)); 
        Response.AddHeader("Content-Length", fi.Length.ToString()); 
        Response.AppendHeader("Last-Modified", …

4楼能解释下你代码的意思吗? --------------------编程问答-------------------- 标记收藏 --------------------编程问答-------------------- 路过 --------------------编程问答-------------------- MARK
引用 3 楼 gavin_luo 的回复:
一般url是DownLoad.aspx?id=1234 
根据这个id把文件的位置取出来,用file类,把这个文件读出来,然后写出来,用户就可以下载了(或者直接跳转到这个文件的位置,浏览器也会提示下载,不过这样的话可能用户就知道文件的位置了,以后就不会付费下载什么的)。我是这样写下载的
--------------------编程问答-------------------- 晕,难道我写一个页面 CHECK.ASPX?ID=789判断是否允许下载
允许下载之后重定向到下载URL不行? --------------------编程问答-------------------- mark --------------------编程问答-------------------- 你能不能说明白点?比如我要我的下载能让迅雷能下载,但又不想让他知道我的URL,这是怎么做的呢? --------------------编程问答--------------------
引用 17 楼 mrhu7002 的回复:
你能不能说明白点?比如我要我的下载能让迅雷能下载,但又不想让他知道我的URL,这是怎么做的呢?


强,和我想的一样,请高人指点 --------------------编程问答-------------------- 顶你下 --------------------编程问答-------------------- 没看懂
?? --------------------编程问答-------------------- budong --------------------编程问答-------------------- up~~
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,