是否可以使用Visual Basic 2008
将图像从URL保存到我的电脑?
例如:从www.domain.com/image.jpg
到C:\folder\image.jpg
P.S:我需要最简单的代码示例,然后我将根据需要进行编辑。
感谢。
更新:我想知道代码何时完成图片下载。
答案 0 :(得分:8)
这是我所知道的最简单的方式。
Dim Client as new WebClient
Client.DownloadFile(Source, Destination)
Client.Dispose
这比使用Microsoft documentation
的My.Computer.Network.DownloadFile方法更优越“DownloadFile方法不会发送可选的HTTP标头。如果缺少可选的用户代理标头,某些服务器可能会返回500(内部服务器错误)。要发送可选标头,您必须使用WebClient类构建请求。”< / p>
答案 1 :(得分:3)
有一种更简单的方法:
My.Computer.Network.DownloadFile(Source, Desination)
答案 2 :(得分:0)
这是我想出的。
Public Function getImgFrmUrl(ByVal url As String, ByVal Optional ImageName As String = "", ByVal Optional DstntnPath As String = "c:\") As String
Dim imgPath = DstntnPath & "\"
Dim name = IIf(ImageName.Length = 0, Guid.NewGuid.ToString, ImageName)
Dim fileExt = Path.GetExtension(url)
Using webClient As WebClient = New WebClient
Const _Tls12 As SslProtocols = CType(&HC00, SslProtocols)
Const Tls12 As SecurityProtocolType = CType(_Tls12, SecurityProtocolType)
ServicePointManager.SecurityProtocol = Tls12
Dim data As Byte() = webClient.DownloadData(url)
If File.Exists(imgPath + name & fileExt) Then File.Delete(imgPath + name & fileExt)
Using mem = New MemoryStream(data)
Using yourImage = Image.FromStream(mem)
If fileExt.ToLower Is ".png" Then
yourImage.Save(imgPath + name & fileExt, ImageFormat.Png)
Else
yourImage.Save(imgPath + name & fileExt, ImageFormat.Jpeg)
End If
End Using
End Using
End Using
Return imgPath & name & fileExt
End Function
答案 3 :(得分:0)
创建一个模块并使用此功能
公共声明函数ShellExecute Lib“ shell32.dll”别名“ ShellExecuteA”(ByVal hwnd如长,ByVal lpOperation如字符串,ByVal lpFile如字符串,ByVal lpParameters如字符串,ByVal lpDirectory如字符串,ByVal nShowCmd如长) 私有声明函数URLDownloadToFile Lib“ urlmon”别名“ URLDownloadToFileA”(ByVal pCaller为长,ByVal szURL为字符串,ByVal szFileName为字符串,ByVal dw保留为长,ByVal lpfnCB为长)
公共函数DownloadFile(sURLFile作为字符串,sLocalFilename作为字符串)作为布尔值 暗淡 lRetVal = URLDownloadToFile(0,sURLFile,sLocalFilename,0,0) 如果lRetVal = 0,则DownloadFile = True 结束功能