2013-03-20 5 views
-1

.Net 웹 사이트를 운영하고 있습니다. docroot는 C : 드라이브에 있으며 시스템은 E : 드라이브의 폴더에 PDF를 생성합니다. 내 웹 사이트에서 PDF에 대한 링크를 갖고 싶습니다. E : 드라이브는 HTTP 드라이브가 아니며 단지 Windows 드라이브입니다.웹 페이지의 하드 드라이브에 PDF 연결

  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 
+0

여기서 발전을 이야기하고 있습니까? 소스 코드를 수정할 수 있습니까? .NET은 * 언어 *가 아닙니다. – Jesse

+0

왜 나를 투표 해 줬습니까? 그리고 Drupal 웹 사이트 나 LAMP 웹 사이트처럼 .Net 웹 사이트를 말할 수 있습니다. 비추십시오. 도움을 얻기 위해이 사이트를 방문한 다른 사람들을 위해 내가 찾은 대답으로 텍스트를 편집하고 있습니다. – Kungfus

답변

0

사용자 그러나 다음과 같은 응답으로 파일을 쓸 수 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

관련 문제