Turning gears are the logo of co-scripts

İnternette sunucuların sunduğu resimler(jpeg vb.) statik olarak .jpg ile adreslendirilebileceği gibi sunucu tarafından binary akışı olarak da gönderilebilir. Bu taktirde Url http://engingem.com/resimver.php?id=123  şeklinde görünecektir. Bu gibi durumlarda dosyayı kaydetmek istersek binaryleri alıp bir dizi tipi değişkene aktarıp oradan kaydetmek uygun yöntemlerden birisidir.

Örnek kodumuzdaki C# projesinde forma iki adet metin kutusu bir de düğme ekledik. Kutulardan birisi bize görseli veren url diğeri ise görseli makinada kaydetmek için vereceğimiz ismi girdiğimiz kutu.

Düğmenin onclick olayına yazacağımız iki fonksiyonu atıyoruz. Birinci fonksiyon binary dizisini geri veriyor, diğeri (2.) onu alıp dosya olarak kaydediyor.

HttpWebRequest, ve Stream için using System.Net ve FileStream ile BinaryWrite için using System.IO; yu projemize eklemeyi unutmayın.

İnternette kodları bulduğum url şurada . Web alanında örnek image binary veren dosyayı hazırlayıp sunan  Engin GEM arkadaşıma ve soruyu bana sorup bu bilgiyi de öğrenmeme ve az da olsa işe yaramama neden olan İnan KARACAN arkadaşıma teşekkür ederim.

Düğmenin onclick prosedüründeki kodlar aşağıda:

 

        private void button1_Click(object sender, EventArgs e)
        { DiskeByteYazma(textBox2.Text,URLdenByteAlma(textBox1.Text)); }

            // başlıyoruz

           static public byte[] URLdenByteAlma(string url)
        {
            byte[] b;
            HttpWebRequest bizimTalep = (HttpWebRequest)WebRequest.Create(url);
            WebResponse bizimCevap = bizimTalep.GetResponse();

            Stream stream = bizimCevap.GetResponseStream();
            //int i;
            using (BinaryReader binaryOkuyucu = new BinaryReader(stream))
            {
                //i=(int)(stream.Length);
                b = binaryOkuyucu.ReadBytes(500000); // Burada okunacak byte sayısı resmin büyüklüğü ile alakalı
                binaryOkuyucu.Close();
            }
            bizimCevap.Close();
            return b;
            // Buraya kadar urlden çektiğimiz byteları bir diziye aktardık ve return ettik.
        }

        static public void DiskeByteYazma(string dosyaAdi, byte[] icerik)
        {
            FileStream dosyaAkisi = new FileStream(dosyaAdi, FileMode.Create);
            BinaryWriter binaryYazici = new BinaryWriter(dosyaAkisi);
            try
            {
                binaryYazici.Write(icerik);
            }
            finally
            {
                dosyaAkisi.Close();
                binaryYazici.Close();
            }
        }


            // bitirdik

Kolay gelsin

co-scripts tag image urlden resim kaydetmebinary kaydetmeurlden binary almafilemodeurlden byte almakhttpwebrequestwebresponsestreamfilestreambinarywritersystem.netsystem.iogetresponsegetresponsestream
ID:243 | Okunma:2642