2017-04-10 8 views
0

제목으로 질문..Net의 인트라넷에서 PDF 파일을 다운로드하는 방법은 무엇입니까?

파일을 다른 인트라넷 서버에 저장 한 pdf 파일을 다운로드하는 버튼이 있습니다.

다른 인트라넷 파일에서 pdf 파일을 다운로드하려면 아래 코드를 사용해보십시오.

Response.Clear() 
Response.ContentType = "application/pdf" 
Response.AppendHeader("Content-Disposition", "attachment; filename=Test.pdf") 
Response.BinaryWrite(System.IO.File.ReadAllBytes("\\intranetServer\Test.pdf")) 
Response.End() 

코드의 문제 또는 다른 점을 알고 있습니까?

아마도 IIS가 설정을 구성해야합니까?

구현할 생각이 없습니다.

답변

0

예를 들어, My.Computer.Network.DownloadFile

를 사용하는 방법에 대해 당신이 할 수있는 방법 :

My.Computer.Network.DownloadFile("\\intranetServer\Test.pdf","Path\Folder\file.pdf") 

그렇지 않으면 당신은 System.Net.WebClient

이 사용할 수 있습니다 진행 상황을 추적하고 인스턴스를 더 많이 제어 할 수있게 해줍니다 :

Dim wc As System.Net.WebClient 
wc = New System.Net.WebClient() 
wc.DownloadFileAsync(New Uri("\\intranetServer\Test.pdf";), "Path\Folder\file.pdf") 

PS : 당신이 당신의 솔루션이 사용하려고 유지하려는 당신은 IIS가 볼 수 있는지 확인해야 기억한다면 당신은 Net.Tcp://

을해야 할 수도 있습니다 나는 인트라넷에 대한 URI의 구조에 대한 확실하지 않다 모든 사람과 구조는 우리가 정확하게 파일을 사용해야 할 수도 있습니다 : //!

Private Sub WriteFile(filepath As String, fileName As String, contentType As String, response As HttpResponse) 
    response.Buffer = True 
    response.Clear() 
    response.ContentType = contentType 
    response.Charset = "iso-8859-1" 
    response.HeaderEncoding = System.Text.Encoding.GetEncoding("iso-8859-1") 

    Dim extension As String = System.IO.Path.GetExtension(fileName) 
    response.AddHeader("content-disposition", Convert.ToString("attachment; filename=") & fileName) 

    response.WriteFile(filepath) 
    response.Flush() 
End Sub 
+0

stream 및 byte()를 다운로드 할 수 있습니까? 사용자 액세스 파일을 직접 작성하는 것은 금지되어 있습니다. –

+0

@ 陪来維 IIS로 작업하는 것에 익숙하지 않아 전혀 모른다. 사용자 액세스가 금지되어 있다면 스트림을 전송할 수 없지만 실제로는 확실하지 않다고 생각합니다. 스트림을 사용하여 ** file : // **을 사용하거나 ** Net.Tcp : // **를 사용해보십시오. – Mederic

+0

내가 아는 한 사용자는 파일에 액세스 할 수 없지만 사용자는 서버에 액세스 할 수 있으며 서버는 파일에 액세스하여 파일 스트림을 되돌릴 수 있습니다. –