代码之家  ›  专栏  ›  技术社区  ›  PassionateDeveloper

ASP。Net HyperLink和直接下载?

  •  0
  • PassionateDeveloper  · 技术社区  · 16 年前

    到目前为止,我还可以,但当我在NavigateURL中链接文件时,我不能通过单击来获取文件,我必须右键单击->另存为! 这是我不想要的。有什么帮助吗?

    3 回复  |  直到 16 年前
        1
  •  1
  •   smencer    16 年前

    你可以设置一个ashx文件处理程序。您的ashx通过查询字符串接收请求,将正确的文件加载到内存中,设置正确的响应头并将文件流式传输到浏览器:

    FileInfo fileInfo = new FileInfo(PATH-TO-YOUR-FILE);  //You need to specify this
    context.Response.ContentType = YOUR-CONTENT-TYPE;  //And this
    context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
    context.Response.WriteFile(fileInfo.FullName);
    context.Response.Flush();
    context.ApplicationInstance.CompleteRequest()
    

    如果您对安全性有任何担忧,或者可能需要跟踪谁下载了什么文件等,这可以让您对正在交付的内容进行一些精细的控制。

        2
  •  0
  •   Bryan    16 年前

    这听起来像是浏览器的问题。可能浏览器试图打开一些应用程序来处理此问题,但失败了。仔细检查您的应用程序关联和/或尝试使用新浏览器。

        3
  •  0
  •   savemaxim    14 年前

    我还要在响应中添加“内容处置”标题:

    context.Response.AppendHeader("Content-Disposition", "attachment; filename = " + filename);
    
    推荐文章