1

我有以下代码

    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 名称保持不变。

我可以阻止它更改名称吗?

4

2 回答 2

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();
于 2013-03-15T20:37:17.793 回答
1

如果您愿意,您可以继续使用 Transferfile,但以这种方式。

FileInfo file = new FileInfo(filePath);

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

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

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

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

//设置内容类型

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

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

response.TransmitFile(file.FullName);
于 2014-11-10T21:28:55.660 回答