使用C#在ASP.Net中下载文件

时间:2011-11-22 22:36:22

标签: c# asp.net file download

我正在尝试让我的客户从我的网站下载文件。我试过这段代码:

string fName = Server.MapPath((new_exwork.FilePath));
FileInfo fi = new FileInfo(fName);
long sz = fi.Length;
Response.ClearContent();
Response.ContentType = MimeType(Path.GetExtension(fName));
Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", System.IO.Path.GetFileName(fName)));
Response.AddHeader("Content-Length", sz.ToString("F0"));
Response.TransmitFile(fName);
Response.End();

但我得到以下例外:

  

无法评估表达式,因为代码已优化或本机框位于调用堆栈之上。

     

MimeType功能

private static string MimeType(string Extension)
    {
        string mime = "application/octetstream";
        if (string.IsNullOrEmpty(Extension))
            return mime;

        string ext = Extension.ToLower();
        Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
        if (rk != null && rk.GetValue("Content Type") != null)
            mime = rk.GetValue("Content Type").ToString();
        return mime;
    } 

1 个答案:

答案 0 :(得分:1)

好的一些建议。

一种方法是只有一个指向该文件的超链接,并且客户端点击该文件,浏览器会询问他们是否要下载。

您可以右键单击它们并执行保存目标以进行下载。

如果您要跟踪下载状态

以下是您可以查看的链接。 FileDownload Tracking Status