在C#asp.net中下载文件时,将错误视为无效的虚拟路径

时间:2018-04-23 05:43:20

标签: c# asp.net download virtual-path

我已经编写了一段用于从服务器下载文件的代码。所以当我下载它时,文件会被正确下载。但是当我打开文档时,它会显示错误。

  

无法加载特定文档。

同时在调试时我得到错误。

  

'https:/NVMBD1BKH150V02.IN.RIL.COM/MWSiteSurveyDoc/I-KA-ANKL-ENB-0012_C2/180.jpg'不是有效的虚拟路径。

当我在浏览器中打开URL时,文件会正确打开。

以下是我的代码

protected void lnkDownload_Click(object sender, EventArgs e)
{
    try
    {
        string FulfilePath = (sender as LinkButton).CommandArgument;
        string[] filePath = FulfilePath.Split('\\');               
        string path = @"" + ConfigurationManager.AppSettings["NASSServerPath_MW_Feasibility_Download"].ToString() + "/" + filePath[7] + "/" + filePath[8];
        // Response.ContentType = ContentType;                               

        Response.ContentType = ContentType;
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(path));
        Response.TransmitFile(path);
        Response.End();

    }
    catch (Exception ex)
    {
        // objCom.ErrorLog(ex.GetType().ToString(), ex.Message, "Download Files", Session["UserName"].ToString());
    }

}

1 个答案:

答案 0 :(得分:1)

HttpResponse.Transmit将服务器物理路径作为参数提供给文件。似乎你试图传递远程URI,而且还有一个拼写错误: http:// 前缀中缺少斜杠。

您需要提供TransmitFile方法的本地路径或将请求重定向到URI