在本地驱动器中查看pdf
本文关键字:pdf 驱动器 | 更新日期: 2023-09-27 18:08:10
在我的pc中有一个文件夹,其中有pdf文件,现在我想根据其名称显示它。我已经做了一些编码和它也显示pdf。但在那之后,再次出现错误信息,说"无法打开文件。文件格式"
"有错误。这是我的代码
try
{
this.Response.ContentType = "application/pdf";
this.Response.TransmitFile(FilePath+name);
this.Response.End();
}
catch (Exception ex)
{
WebMsgBox.Show(ex.Message);
}
如果创建一个处理程序,则写入"DownloadDoc "。,并使用以下代码:
Option Infer On
Imports System.IO
Imports System.Web
Imports System.Web.Services
''' <summary>
''' Return a pdf document.
''' </summary>
''' <remarks></remarks>
Public Class DownloadDoc
Implements System.Web.IHttpHandler
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim srcDir As String = "~/pdfs"
Dim fileType As String = ".pdf"
Dim fname = context.Request.QueryString("name")
Dim actualFile = Path.Combine(context.Server.MapPath(srcDir), fname & suffix) & fileType
If File.Exists(actualFile) Then
context.Response.ContentType = "application/octet-stream"
context.Response.AddHeader("Content-Disposition", "attachment; filename=""" & Path.GetFileName(actualFile) & """")
context.Response.TransmitFile(actualFile)
Else
context.Response.Clear()
context.Response.TrySkipIisCustomErrors = True
context.Response.StatusCode = 404
context.Response.Status = "404 Not Found"
context.Response.Write("<html><head><title>404 - File not found</title><style>body {font-family: sans-serif;}</style></head><body><h1>404 - File not found</h1><p>Sorry, that file is not available for download.</p></body></html>")
context.Response.End()
End If
End Sub
ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
那么你可以使用普通的<a href="http://www.example.com/DownloadDoc.ashx?name=mypdf">
。
请注意,使用"。pdf"扩展名是强制的,因此它不能被破坏以从服务器下载任意文件。您还可以确保只有一个文件名,而没有启用目录遍历,以防止在服务器上没有安全设置文件权限。
设置context.Response.ContentType = "application/octet-stream"
最接近于让浏览器提供文件供下载,而不是显示它。
Edit:哦,对不起,你想要c#。我相信你能翻译以上内容。