使用c#下载文件时不支持异常

时间:2013-05-31 14:14:26

标签: c# asp.net .net asp.net-mvc file

我想在我的ASP.NET应用程序中下载一个文件。我用过这个片段:

try
{
    string s = fichier.GetFichierUrlById(_id);
    Response.ContentType = "application/" + Path.GetExtension(s); 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + s);
    Response.TransmitFile(Server.MapPath("~/Downloads/"+s));
    Response.End();
}
catch { }

在此示例中,我有文件setup.exe,我收到The format of the given path is not supported.

等异常

此异常的原因是什么?我该如何修复代码?

2 个答案:

答案 0 :(得分:2)

检查S的值,因此检查“Server.MapPath(”〜/ Downloads /“+ s)的返回值。

你可能在S中有一些无效的字符可能会搞砸?

答案 1 :(得分:1)

TransmitFile会假设下载子文件夹中有一个物理文件。

如果不是这样,那么你需要做一些事情,比如自己将数据写入输出流。