在 VB.NET 中从网络服务器 (cPanel/VPS) 下载图像
Download Image From WebServer (cPanel/VPS) in VB.NET
我正在尝试制作一个从服务器下载图像并在图片框中使用它们并在需要时将其保存在本地的功能。现在我正在使用:
Public Function WebImgDownload(ByVal Url As String, Optional ByVal saveFile As Boolean = False, Optional ByVal location As String = "C:\") As Image
Dim client As New WebClient With {
.Credentials = New NetworkCredential("username", "password")}
Dim bytes() As Byte = client.DownloadData(Url)
Dim stream As New IO.MemoryStream(bytes)
If saveFile Then My.Computer.FileSystem.WriteAllBytes(location, bytes, False)
Return New Bitmap(stream)
End Function
现在,当我使用如下函数时,一切正常:
PictureBox1.Image = WebImgDownload("myurl")
但只有当我在 cPanel 上提供对文件夹的世界权限时它才有效。如果我只向文件夹提供用户权限,那么它将需要身份验证并使用我的凭据,它会返回 404 错误消息。
我正在使用我登录服务器的用户名和密码,但它只是抛出错误:
System.Net.WebException: 'The remote server returned an error: (404) Not Found.'
有什么我遗漏的吗?
提前致谢!
所以我发现了我的错误。当我需要为文件使用 ftp 地址时,我试图通过仅使用普通地址进行身份验证。就我而言,我使用的是:
https://myserver/folder/file.jpg
现在我使用 ftp 地址,如下所示:
ftp://myserver/public_html/folder/file.jpg
这样它可以正确验证并正确指向文件,因为不使用地址中的 public_html 会将其指向错误的文件夹。
出于某种原因,当您不需要通过服务器进行身份验证时,您可以在文件为 public.
时使用普通地址
我正在尝试制作一个从服务器下载图像并在图片框中使用它们并在需要时将其保存在本地的功能。现在我正在使用:
Public Function WebImgDownload(ByVal Url As String, Optional ByVal saveFile As Boolean = False, Optional ByVal location As String = "C:\") As Image
Dim client As New WebClient With {
.Credentials = New NetworkCredential("username", "password")}
Dim bytes() As Byte = client.DownloadData(Url)
Dim stream As New IO.MemoryStream(bytes)
If saveFile Then My.Computer.FileSystem.WriteAllBytes(location, bytes, False)
Return New Bitmap(stream)
End Function
现在,当我使用如下函数时,一切正常:
PictureBox1.Image = WebImgDownload("myurl")
但只有当我在 cPanel 上提供对文件夹的世界权限时它才有效。如果我只向文件夹提供用户权限,那么它将需要身份验证并使用我的凭据,它会返回 404 错误消息。
我正在使用我登录服务器的用户名和密码,但它只是抛出错误:
System.Net.WebException: 'The remote server returned an error: (404) Not Found.'
有什么我遗漏的吗?
提前致谢!
所以我发现了我的错误。当我需要为文件使用 ftp 地址时,我试图通过仅使用普通地址进行身份验证。就我而言,我使用的是:
https://myserver/folder/file.jpg
现在我使用 ftp 地址,如下所示:
ftp://myserver/public_html/folder/file.jpg
这样它可以正确验证并正确指向文件,因为不使用地址中的 public_html 会将其指向错误的文件夹。
出于某种原因,当您不需要通过服务器进行身份验证时,您可以在文件为 public.
时使用普通地址