2013-03-20 49 views
-1

我正在運行.Net網站。 docroot位於C:驅動器上,系統生成PDF到E:驅動器上的文件夾。我想在我的網站上鍊接到PDF。 E:驅動器雖然不是HTTP驅動器,但它只是一個Windows驅動器。將PDF鏈接到網頁上的硬盤上

  1. 有沒有簡單的方法來鏈接到PDF,或者我必須將它們全部移動到C:中的文根根?
  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 
+0

我們在這裏談論發展嗎?你能修改源代碼嗎? .NET不是*語言*。 – Jesse 2013-03-28 00:18:11

+0

你爲什麼投票給我?有人可以說,一個.Net網站就像可以說一個Drupal網站或一個LAMP網站一樣。放鬆。對於來到本網站尋求幫助的其他人,我正在使用我找到的答案編輯文本。 – Kungfus 2013-03-28 20:32:45

回答

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(); 
+0

這個答案非常接近我找到的答案。謝謝。 – Kungfus 2013-03-28 20:46:19