Avatar billede iluka Nybegynder
05. juli 2005 - 16:45 Der er 3 kommentarer og
1 løsning

hente og gemme billede via http

Hej

Jeg har brug for at hente et billede fra en webserver og gemme det i en fil på min harddisk. Jeg er kommet så langt at jeg kan hente billedet, og skrive det i en tekstfil, men det kan naturligvis ikke åbnes, da filen ikke er binær. Der kan også være andre ting jeg har glemt at tage højde for.

Her er koden, what am i dooing wrong?

using System;
using System.IO;
using System.Net;
using System.Text;

class HttpWebRequest_Connection
{
    static void Main()
    {
        try
        {
            HttpWebRequest myHttpWebRequest1 = (HttpWebRequest)WebRequest.Create("http://localhost/myimage.gif");

            myHttpWebRequest1.KeepAlive = false;
            HttpWebResponse myHttpWebResponse1 = (HttpWebResponse)myHttpWebRequest1.GetResponse();

            Stream streamResponse = myHttpWebResponse1.GetResponseStream();
            StreamReader streamRead = new StreamReader(streamResponse);
           
            char[] readBuff = new char[256];
            int count = streamRead.Read(readBuff, 0, 256);

            using (StreamWriter sw = File.CreateText("myimage.gif"))
            {
                while (count > 0)
                {
                    sw.Write(readBuff);
                    count = streamRead.Read(readBuff, 0, 256);
                }
            }
            streamResponse.Close();
            streamRead.Close();
            myHttpWebResponse1.Close();
        }
        catch (WebException e)
        {
            Console.WriteLine("WebException raised!"+e);
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception raised!"+e);
        }
    }
}
Avatar billede arne_v Ekspert
05. juli 2005 - 16:46 #1
drop StreamReader og læs direkte fra Stream'en
Avatar billede arne_v Ekspert
05. juli 2005 - 16:46 #2
eksempel:

using System;
using System.IO;
using System.Net;
using System.Web;

class MainClass
{
    public static void Main(string[] args)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.eksperten.dk/img/elogo.png");
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        string filename = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) + "\\elogo.png";
        Stream f1 = resp.GetResponseStream();
        Stream f2 = new FileStream(filename, FileMode.CreateNew, FileAccess.Write);
        byte[] b = new byte[1000];
        int n;
        while((n = f1.Read(b, 0, b.Length)) > 0)
        {
            f2.Write(b, 0, n);
        }
        f2.Close();
        f1.Close();
        resp.Close();
    }
}
Avatar billede iluka Nybegynder
05. juli 2005 - 17:13 #3
tak skal du have... jeg kan vist ikke give dig points når det er en kommentar vel?
Avatar billede arne_v Ekspert
05. juli 2005 - 17:57 #4
jeg ligger et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

IT-Universitetet i København

CIO

Netcompany A/S

IT Consultant

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Analytiker til Security Operations Center i Cyberdivisionen