programing

URL에서 이미지를 프로그래밍 방식으로 저장하려면 어떻게합니까?

firstcheck 2021. 1. 17. 10:55
반응형

URL에서 이미지를 프로그래밍 방식으로 저장하려면 어떻게합니까?


URL에서 이미지를 프로그래밍 방식으로 저장하려면 어떻게합니까? C #을 사용하고 있으며 URL에서 이미지를 가져와 로컬에 저장할 수 있어야합니다. ... 아니요, 나는 도둑질하지 않습니다 :)


다음과 같이 작성하는 것이 더 쉬울 것입니다.

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

이미지 URI에 대해 HttpWebRequest사용하여 기본 http 요청을 만든 다음 결과 바이트 스트림을 가져온 다음 해당 스트림을 파일에 저장 하기 만하면 됩니다.

다음은이를 수행하는 방법에 대한 예입니다.

'이미지가 매우 큰 경우에는 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-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();
        }
    }
}

작성자 : HOAN HUYNH
ASP.Net C # URL에서 이미지 파일 다운로드 또는 저장

ReferenceURL : https://stackoverflow.com/questions/1110246/how-do-i-programmatically-save-an-image-from-a-url

반응형