필자가 열어서 실제로 어떤 요청이 서버로 전송되었고 응답이 무엇인지 확인했습니다. 또한 실제로 요청하는 방법 (예 : 경로)과 PDF를 제공하는 방법에 따라 다를 수 있습니다. 필자는 WROX 전자 책 중 하나에서 암호로 보호 된 PDF 문서를 반환하는 방법과 사용자 그룹에서 수행하는 처리기 및 모듈 프레젠테이션을 보여줍니다. http://professionalaspnet.com/archive/2008/08/10/CodeStock-Rocked_2100_.aspx (링크를 페이지의 코드를 다운로드).
다음은 Handler를 사용하여 PDF를 반환하는 코드입니다. 도움이 될 것입니다.
'First run the supplied filename through a URL decoder to change any URL
'characters back to their normal selves.
sDocument = HttpUtility.UrlDecode(_
Path.GetFileName(context.Request.Url.ToString))
'Now build a full physical path to the file on the server.
sDocument = Path.Combine(Path.Combine(_
context.Request.PhysicalApplicationPath, "PDF"), sDocument)
'Verify we actually have the file to serve.
If File.Exists(sDocument) = False Then
context.Server.Transfer("badpdf.aspx")
End If
'The next two sections are from Scott Hanselman's blog, but seem to be out of date,
'since it was posted in 2003
'http://www.hanselman.com/blog/InternetExplorerAndTheMagicOfMicrosoftKBArticleQ293792.aspx
'This is done to support older browsers that were not as efficient
'at managing document requests.
If InStr(1, context.Request.UserAgent, "contype") > 0 Then
'Just send the mime/type
Response.ContentType = "application/pdf"
Response.End()
Exit Sub
End If
Dim Language As String = context.Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
If String.IsNullOrEmpty(Language) Then
Response.Clear()
Response.ContentType = "application/pdf"
Response.AddHeader("Last-modified", "Mon, 01 Sep 1997 01:03:33 GMT")
Response.Status = "304 Not Modified"
Response.End()
Exit Sub
End If
'Set the Cacheability
Response.Cache.SetCacheability(HttpCacheability.Public)
Response.Cache.SetExpires(DateTime.MinValue)
Response.ContentType = "application/pdf"
'This opens the Open/Save Dialog
Response.AddHeader("Content-Disposition", "attachment; filename=" & _
Path.GetFileName(sDocument))
'This Bypasses the Open/Save Dialog
'Response.AddHeader("Content-Disposition", "inline; filename=" & _
' Path.GetFileName(sDocument))
If File.Exists(sDocument) Then
'Write the file to the Response Output stream without buffering.
'This is new to ASP.NET 2.0. Prior to that use WriteFile.
Response.TransmitFile(sDocument)
Response.End()
End If
나는 이것을하지 않는다 (나는 스트림 pdf의 tho를한다); 나는 바이올린을 설치하고 서버에서 오는 속도와 속도를 확인하는 것이 좋습니다. 적어도 당신은 일할 수있는 정보를 얻을 것입니다. 또한 PDF 파일을 잠글 수 있습니까? – Will