2017-04-10 11 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の構造についてはよく分かりません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

私が知る限り、ユーザーはファイルにアクセスすることはできませんが、ユーザーはサーバーにアクセスでき、サーバーはファイルにアクセスしてファイルストリームを返すことができます。 –

関連する問題