C# 从子目录下载文件时保留子目录名称
我正在通过一个C#ASPX页面下载一个文件。文件以temp\GUID\file.zip的形式在URL文件参数中传递。我的代码:C# 从子目录下载文件时保留子目录名称,c#,asp.net,download,C#,Asp.net,Download,我正在通过一个C#ASPX页面下载一个文件。文件以temp\GUID\file.zip的形式在URL文件参数中传递。我的代码: void Page_Load(object sender, EventArgs e) { if (!this.Page.IsPostBack) { if (Request.QueryString["File"] != null) { Response.Buf
void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
if (Request.QueryString["File"] != null)
{
Response.BufferOutput = true;
if (Request.QueryString["File"].Contains( "zip" ))
Response.ContentType = "application/zip"; //varies depending on the file being streamed
Response.AddHeader( "Content-Disposition", "attachment; filename=\"" + Request.QueryString["File"] + "\"" );
Response.WriteFile( Server.MapPath( Request.QueryString["File"] ) );
}
}
}
问题是,该文件在我的下载目录中显示为tempguidfile
(例如:temp07e315af-13c6-4537-92df-fae95cc0039fFile.zip)。如何获取Response.Writefile()
、TransmitFile()
,或类似的内容,以便将文件保存在下载目录中,只需将其保存为file.zip?行中:
Response.AddHeader(“内容处置”,“附件;文件名=\”+请求.查询字符串[“文件”]+“\”)代码>
删除Request.QueryString[“File”]
并放入您自己的文件名。/me按下DUH按钮。我的实际实现是:我通过Path.GetFileName()
将文件名作为单独的参数传递,并使用Request.QueryString[“Filename”]
作为文件名头。