How do I programmatically save an image from a URL?

后端 未结 4 585
星月不相逢
星月不相逢 2020-11-30 22:05

How do I programmatically save an image from a URL? I am using C# and need to be able grab images from a URL and store them locally. ...and no, I am not stealing :)

相关标签:
4条回答
  • 2020-11-30 22:45

    You just need to make a basic http request using HttpWebRequest for the URI of the image then grab the resulting byte stream then save that stream to a file.

    Here is an example on how to do this...

    'As a side note if the image is very large you may want to break up br.ReadBytes(500000) into a loop and grab n bytes at a time writing each batch of bytes as you retrieve them.'

    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();
                }
            }
        }
    }
    
    0 讨论(0)
  • 2020-11-30 22:54

    It would be easier to write something like this:

    WebClient webClient = new WebClient();
    webClient.DownloadFile(remoteFileUrl, localFileName);
    0 讨论(0)
  • 2020-11-30 22:55

    An example in 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-includes/images/logo.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();
            }
        }
    }
    

    Author: HOAN HUYNH
    ASP.Net C# Download Or Save Image File From URL

    0 讨论(0)
  • 2020-11-30 23:11

    My solution is pre save the image to de disk and then usa as a normal saved image:

    remoteFile = "http://xxx.yyy.com/image1.png"; localFile = "c:\myimage.png";

    WebClient webClient = new WebClient(); webClient.DownloadFile(remoteFile, localFile);

    0 讨论(0)
提交回复
热议问题