0

Grundsätzlich möchte ich ein Bild speichern, das in ein WebBrowser-Steuerelement geladen wurde. Die einzige Möglichkeit, dies im Moment zum Laufen zu bringen, ist das Speichern des Dialogs.WebBrowser.ShowSaveAsDialog() oder alternative Methode automatisieren

Gibt es eine Möglichkeit, einen Pfad zu übergeben und ihn selbst zu speichern? (Blenden Sie den Dialog aus, den ich anzeigen möchte!)

Gibt es eine andere Möglichkeit, das Bild zu speichern? Ich kann den Dokumentenstrom nicht zur Arbeit bringen. Ich habe auch versucht, webclient.filedownload(...) aber einen Fehler 302 ("(302) Found Redirect.")

DownloadFileAsync gibt keinen Fehler, aber eine leere JPEG-Datei?

Dateien sind immer JPEGs, aber nicht immer am gleichen Ort.

Antwort

0

Sie sollten mit HttpWebRequest gehen.

Es hat die Fähigkeit, einem 302 automatisch zu folgen.

var myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.contoso.com"); 
//increase this number if there are more then one redirects. 
myHttpWebRequest.MaximumAutomaticRedirections = 1; 
myHttpWebRequest.AllowAutoRedirect = true; 
var myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();  

var buff = new byte[myHttpWebResponse.ContentLength]; 

// here you specify the path to the file. The path in this example is : image.jpg 
// if you want to store it in the application root use: 
// AppDomain.CurrentDomain.BaseDirectory + "\\image.jpg" 
using (var sw = new BinaryWriter(File.Open("c:\\image.jpg", FileMode.OpenOrCreate))) 
{ 
    using (var br = new BinaryReader (myHttpWebResponse.GetResponseStream())) 
    { 
     br.Read(buff, 0, (int)myHttpWebResponse.ContentLength); 
     sw.Write(buff); 
    }    
} 
+0

ja ich hatte an anderer Stelle gelesen, dass das funktionieren sollte, habe ich versucht, Ihren Code und immer noch eine 302? Auch wo wird die Datei gespeichert? (Wie kann ich einen Ausgabepfad angeben) –

+0

Es war ein kleiner Fehler darin. :) Versuche dies. Können Sie den Link zu dem umgeleiteten Bild freigeben? – albertjan

+0

Mir wurde gesagt, ich könnte die Daten nicht teilen. bekomme immer noch einen Umleitungsfehler in Zeile 4. Kann ich die Weiterleitung blockieren? Ich kann nicht sehen, warum das passiert, wenn Sie das Profilbild in einem Webbrowser anzeigen, zeigt es sich gut und bleibt auf dem Bild, umadressiert nirgendwo? –