-1

我正在运行一个.Net 网站。docroot 位于 C: 驱动器上,系统生成 PDF 到 E: 驱动器上的文件夹。我想在我的网站上有指向 PDF 的链接。E: 驱动器不是 HTTP 驱动器,它只是一个 Windows 驱动器。

  1. 有没有一种简单的方法可以链接到 PDF,或者我必须将它们全部移动到 C: 中的 docroot 中?
  2. 另外,我需要保护 E: 驱动器和文件夹免受黑客攻击。

我正在寻找一个简单、安全的解决方案。

更新:我找到了这个解决方案。我传递了合同 ID。PDF 的名称基于合同 ID。此代码在我的浏览器中打开 PDF。

strPDF0="S" & getFormatwith0(cint(ContractID),3) & ".PDF"
strPDF="E:\FTProot\docs\" & strPDF0
Set FSOobj = Server.CreateObject("Scripting.FileSystemObject")
if FSOobj.FileExists(strPDF) Then 
Response.ContentType = "application/pdf"
'Set file name
Response.AddHeader "Content-Disposition", "inline; filename=" & strPDF0

Set oFileStream = Server.CreateObject("ADODB.Stream")
oFileStream.Open
oFileStream.Type = 1 'Binary
oFileStream.LoadFromFile strPDF

Response.BinaryWrite(oFileStream.Read)

oFileStream.Close
Set oFileStream= Nothing
Else
Response.Write "Contract does not exist"
End if 
Set FSOobj = Nothing
4

1 回答 1

0

您不能将文件作为链接发送,因为用户无法访问e:\myfolder\

但是,您可以编写一个文件作为响应,如下所示。请确保您设置了适当的读取权限e:\myfolder\

HttpResponse response = HttpContext.Current.Response;
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment; filename=file.pdf");
response.WriteFile("e:\myfolder\file.pdf");
response.End();
于 2013-03-20T19:12:25.690 回答