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

asp.net:—是物理路径,但需要虚拟路径

  •  -3
  • hud  · 技术社区  · 6 年前

    我想从本地PC下载一个Excel文件格式,所以我编写了如下代码

    protected void btnDownloadExcelTemp_Click(object sender, EventArgs e)
    {
        try
        {
            string strFileFormat = System.Configuration.ConfigurationManager.AppSettings["FormateFilePath"].ToString();
            string strFilePath = HttpContext.Current.Server.MapPath(strFileFormat + "/CMP_TEMPLATES.xlsx");
            HttpResponse response = HttpContext.Current.Response;
            response.Clear();
            response.AppendHeader("content-disposition", "attachment; filename=" + "CMP_TEMPLATES.xlsx");
            response.ContentType = "application/octet-stream";
            response.WriteFile(strFilePath);
            response.Flush();
            response.End();
        }
        catch (Exception)
        {            
            throw;
        }
    }
    

    strFileFormat <add key="FormateFilePath" value="D:/Name/CMP/CMP Excel Template"/>

    所以在下载的时候,我得到的错误是

    'd:/name/cmp/cmp excel template/cmp_templates.xlsx'是物理路径,但需要虚拟路径。

    我不知道它会走什么路。请建议

    1 回复  |  直到 6 年前
        1
  •  1
  •   MW_dev    6 年前

    从阅读文档开始: https://msdn.microsoft.com/en-us/library/ms524632(v=vs.90).aspx .

    MapPath 基于相关路径或虚拟路径生成物理路径,因此给它一个物理路径是没有意义的。你已经有了物理路径,所以你应该能够完全跳过这一步。

    protected void btnDownloadExcelTemp_Click(object sender, EventArgs e)
    {
        try
        {
            string strFileFormat = System.Configuration.ConfigurationManager.AppSettings["FormateFilePath"].ToString();
            string strFilePath = strFileFormat + "/CMP_TEMPLATES.xlsx";
            HttpResponse response = HttpContext.Current.Response;
            response.Clear();
            response.AppendHeader("content-disposition", "attachment; filename=" + "CMP_TEMPLATES.xlsx");
            response.ContentType = "application/octet-stream";
            response.WriteFile(strFilePath);
            response.Flush();
            response.End();
        }
        catch (Exception)
        {            
            throw;
        }
    }
    
    推荐文章