链接网页上的硬盘驱动器上的PDF

时间:2013-03-20 18:15:45

标签: .net

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

  1. 是否有一种简单的方法可以链接到PDF,还是我必须将它们全部移到C中的docroot:?
  2. 另外,我需要保护E:驱动器和文件夹免受黑客攻击。
  3. 我正在寻找一个简单,安全的解决方案。

    更新:我找到了这个解决方案。我传递合同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
    

1 个答案:

答案 0 :(得分: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();