response.transmitfile更改文件名

时间:2013-03-15 15:08:56

标签: asp.net vb.net

我有以下代码

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles submit1.Click

    Dim filename As String = "C:\pdfs\" + TextBox1.Text
    Response.TransmitFile(filename)

End Sub

Textbox1.text是包含扩展名的pdf的名称。这是正常工作,除了pdf的文件名更改为我称之为的网页的名称。 c:\ pdfs中的pdf名称保持不变。

我可以阻止它更改名称。

2 个答案:

答案 0 :(得分:3)

将Response.TransmitFile更改为

Dim fileInfo As FileInfo = new FileInfo("C:\pdfs\" + TextBox1.Text)

 Response.ContentType = "application/octet-stream";
 Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", TextBox1.Text));
 Response.AddHeader("Content-Length", fileInfo.Length.ToString());
 Response.WriteFile(fileInfo.FullName);
 Response.End();

答案 1 :(得分:1)

如果需要,可以继续使用Transferfile,但这样。

FileInfo file = new FileInfo(filePath);

// LINE1:添加" 文件名"和附件,它将强制打开/取消/保存对话框显示标题和名称

response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);

//将文件大小添加到响应标头

response.AddHeader("Content-Length", file.Length.ToString());

//设置ContentType

response.ContentType = file.Extension.ToLower();

//将文件写入响应(TransmitFile用于ASP.NET 2.0。在ASP.NET 1.1中,您必须使用WriteFile)

response.TransmitFile(file.FullName);