Avatar billede mirakulix Nybegynder
22. februar 2006 - 10:55 Der er 8 kommentarer og
1 løsning

hvorfor kan jeg ikke åbne billederne nå jeg har downloadet dem?

Jeg har fiflet lidt med at lave en web application der kan hente billeder fra andre sites og gemme dem localt.

Via debug ser det ud ud til at jeg har rigtigt fat i det ønskede billede, men når jeg forsøger at åbne billedet lokalt kan det ikke vises. Jeg tror det er fordi jeg ikke gemmer det rigtigt, men kan ikke rigtigt se hvad der går galt.

Så hvis der er en ekspert der gider se på min kode og fortælle hvor det går galt, ville det være super! =)
   
    protected void Button2_Click(object sender, EventArgs e)
    {
        string UriToResolve = TextBox1.Text.ToString();
        string localPath = @"*LocalPath*";
       
        int length = 1024;
        char [] Buffer = new char[1024];
        int bytesread = 0;
        bool ResolvedURI = false;
       
        while ( !ResolvedURI )
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(UriToResolve);
            request.AllowAutoRedirect = true;

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            string absolutePath, fileName = null;
            absolutePath = response.ResponseUri.AbsolutePath;

            int i = absolutePath.LastIndexOf("/");
            if (i > 0)
            {
                fileName = absolutePath.Substring(i + 1);
            }

            ResolvedURI = true;
           
            sFile = localPath + fileName;

            pfileWriter = new StreamWriter(new FileStream(sFile, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None));

            StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.ASCII);

            bytesread = sr.Read(Buffer, 0, length);
            pfileWriter.Write(Buffer, 0, bytesread);
           
            while (bytesread > 0)
            {
                bytesread = sr.Read(Buffer, 0, length);
                pfileWriter.Write(Buffer, 0, bytesread);
            }

            pfileWriter.Close();
        }
    }
Avatar billede mirakulix Nybegynder
22. februar 2006 - 10:57 #1
PS. den gemte fil har den korrekt filstørrelse og dimensioner, den kan bare ikke vises
Avatar billede mikkel_sommer Nybegynder
22. februar 2006 - 11:23 #2
Prøv at gemme billedet med:

image1.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);

Du kan evt. skifte formatet hvis du ønsker et andet...
Avatar billede mirakulix Nybegynder
22. februar 2006 - 11:52 #3
hmm.. jeg har jo ikke rigtigt billedet, kun en stream.

Ideen med at gøre det med streams er at så kan jeg hente andet en billeder hvis det skulle være nødvendigt.
Avatar billede mikkel_sommer Nybegynder
22. februar 2006 - 12:34 #4
Så må du vel ud i noget med at checke på filtypen
Avatar billede mirakulix Nybegynder
22. februar 2006 - 12:57 #5
hmm det burde da være muligt at gemme det som stream?
Avatar billede mikkel_sommer Nybegynder
22. februar 2006 - 13:21 #6
Skal ikke kunne sige det med 100% sikkerhed, men tror det er derfor du har problemer med efterfølgende at åbne det.

Jeg oplevede noget af det samme engang jeg prøvede at indlæse et billed fra disken og skrive det ud i et andet format, via streams vel og mærket.
Avatar billede mirakulix Nybegynder
23. februar 2006 - 11:06 #7
Er der ikke nogen der med held har hentet og gemt en fil via streams ?
Avatar billede mirakulix Nybegynder
23. februar 2006 - 11:40 #8
Jeg har fundet en metode, det er godt nok ikke streams, men det ligegyldigt hvilken filtype det er, præcis det jeg har brug for:

WebClient client = new WebClient();
client.DownloadFile(remotePath,localPath);
Avatar billede siz23 Nybegynder
24. februar 2006 - 11:44 #9
tror dit problem ligger i ASCII encodingen.
BinaryReader/BinaryWriter ville nok have løst dit problem.
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