从网址保存图片

时间:2012-03-13 17:35:42

标签: vb.net visual-studio-2008

是否可以使用Visual Basic 2008将图像从URL保存到我的电脑?

例如:从www.domain.com/image.jpgC:\folder\image.jpg

P.S:我需要最简单的代码示例,然后我将根据需要进行编辑。

感谢。

更新:我想知道代码何时完成图片下载。

4 个答案:

答案 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 结束功能