我想在ASP.NET C#應用程序中實現強制下載文件對話框。我想強制下載的文件是Web服務器上沒有本地可用的媒體文件,但是是從不同位置提供的。強制下載文件對話框不工作 - ASP.NET C#
我收到一個錯誤'http://remote-site-to-webserver/somefile.asf'不是有效的虛擬路徑。
...我已經尋找解決方案的網絡,但是所有的例子指向相對路徑使用
使用Server.Mappath在下面的例子中我創建了一個頁面webhandler.ashx併發送下載請求到該頁面在服務器上。
<%@ WebHandler Language="C#" Class="DownloadHandler" %>
using System;
using System.Web;
public class DownloadHandler : IHttpHandler {
public void ProcessRequest(HttpContext context) {
var fileName = "http://remote-site-to-webserver/somefile.asf";
var r = context.Response;
r.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
r.WriteFile(context.Server.MapPath(fileName));
}
public bool IsReusable { get { return false; } }
}