VB 2010下载在线文件

时间:2014-02-07 12:53:41

标签: vb.net excel download excel-2010

我目前正在尝试从我们的公司网站下载文件并将其放在用户桌面上,我已经尝试使用其他带有JPG的网站的代码,但它确实有效,但出于某些原因,当我试图下载时来自我们网站的XLSM文件(只有在我相信的公司计算机上登录才能访问)它会给我一条401错误消息。我不知道我做错了什么。我到目前为止的代码是:

Private sub button1_click(sender as system.object, e as system.eventargs) handles button1.click
my.computer.network.downloadfile("http://portal.###.ws/canada/depts/MEG_IPT/Shared%20Documents/MEG%20Master%20Schedule.xlsm", "L:\User\KD\testing.xlsm")
end sub

出于安全原因,我已使用###阻止了某些到实际网站的网址,无论我们公司以外的人都无法访问它。我还要注意的另一件事是,当用户点击该链接时,会弹出一条消息,询问用户是否要打开,保存或保存AS。所以我不确定这是不是导致401错误

2 个答案:

答案 0 :(得分:1)

您应该使用带有用户名和密码的重载方法。

Private sub button1_click(sender as system.object, e as system.eventargs) handles button1.click
my.computer.network.downloadfile("http://portal.###.ws/canada/depts/MEG_IPT/Shared%20Documents/MEG%20Master%20Schedule.xlsm", "L:\User\KD\testing.xlsm",yourusername, yourpassword)
end sub

了解更多信息。 http://msdn.microsoft.com/en-us/library/ack30t8y(v=vs.90).aspx

有关错误401的更多信息: http://www.checkupdown.com/status/E401.html

答案 1 :(得分:0)

你没有从你的申请中获得401“。你从服务器得到401。 HTTP.401非常自我解释:您无权访问该特定资源。 如果此门户需要身份验证(NTLM),则应提供有效凭据,以便Web服务器可以授权资源访问。 下面是一个使用WebClient的示例(内部和可能与Network.DownloadFile相同的实现),您可以指定用户凭据。

Dim WC As New Net.WebClient
WC.Credentials = New Net.NetworkCredential("user", "pwd")
WC.DownloadFileAsync(New Uri("your url"), "local path")

您应该通过AddHandler或“WithEvents”关键字为Complete事件添加处理程序。