如何以编程方式保存URL中的图片?

如何以编程方式保存URL中的图片? 我正在使用C#,并需要能够从URL抓取图像并将其存储在本地。 …不,我不是偷东西:)

写这样的东西比较容易:

WebClient webClient = new WebClient(); webClient.DownloadFile(remoteFileUrl, localFileName); 

您只需要使用HttpWebRequest为图像的URI进行基本的http请求,然后抓取得到的字节stream,然后将该stream保存到文件中。

这里是一个如何做到这一点的例子…

'作为一个方面说明,如果图像非常大,您可能需要将br.ReadBytes(500000)分解成一个循环,并且一次抓取n个字节,每次写入一批字节,就像检索它们一样。

 using System; using System.IO; using System.Net; using System.Text; namespace ImageDownloader { class Program { static void Main(string[] args) { string imageUrl = @"http://www.somedomain.com/image.jpg"; string saveLocation = @"C:\someImage.jpg"; byte[] imageBytes; HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl); WebResponse imageResponse = imageRequest.GetResponse(); Stream responseStream = imageResponse.GetResponseStream(); using (BinaryReader br = new BinaryReader(responseStream )) { imageBytes = br.ReadBytes(500000); br.Close(); } responseStream.Close(); imageResponse.Close(); FileStream fs = new FileStream(saveLocation, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); try { bw.Write(imageBytes); } finally { fs.Close(); bw.Close(); } } } } 

aspx(c#)中的一个例子

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.IO; public partial class download_file_from_url : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string url = "http://4rapiddev.com/wp-includeshttp://img.dovov.comlogo.jpg"; string file_name = Server.MapPath(".") + "\\logo.jpg"; save_file_from_url(file_name, url); Response.Write("The file has been saved at: " + file_name); } public void save_file_from_url(string file_name, string url) { byte[] content; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); using (BinaryReader br = new BinaryReader(stream)) { content = br.ReadBytes(500000); br.Close(); } response.Close(); FileStream fs = new FileStream(file_name, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); try { bw.Write(content); } finally { fs.Close(); bw.Close(); } } } 

作者:HO HU HUYNH
ASP.Net C#从URL下载或保存图像文件