如何从.Net的Intranet下载PDF文件?

时间:2017-04-10 07:11:47

标签: .net vb.net iis download response

作为标题的问题。

我想要一个单击它的按钮将下载pdf文件,其中文件存储在另一个Intranet服务器中。

我尝试使用以下代码从其他Intranet的文件中下载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需要设置配置?

我不知道要实现它。

1 个答案:

答案 0 :(得分: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:我不确定您可能需要的内联网URI的结构Net.Tcp://

如果您想保留您的解决方案,请尝试使用此功能并记住您需要确保所有人都可以看到IIS并正确构建Uri可能需要使用 file://

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
相关问题