Laden...

Http File Download

Erstellt von KRambo vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.865 Views
K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 18 Jahren
Http File Download

Hi Leute.

Ich suche eine bestenfalls fertige Klasse, mit dessen Hilfe ich Http Downloads mit Progress machen kann. Sollte möglichst auch asynchron (in nem eigenen Thread) laufen. Hab bei Codeproject geschaut, aber das ist alles kaum brauchbar.

Das hier LINK wär an sich net so schlecht, nur fehlt mir da noch die Anzeige für die Gesamtgröße und kopierte Bytes der Datei und ich weiß nicht, wie sich das realisieren lässt.

Weiters gibts da noch das hier LINK, einziges Problem:

The class downloads the filename/url you specified. In the sample, get the value of the textbox for the filename or keep a copy of the value you pass to the WebDownload class.

FYI, in the demo application, nothing is written to disk, you need to save the contents of the buffer yourself!

Sieht geil aus, nur wie speicher ich den Inhalt des Buffers in dem Beispiel? Der Code ist meiner Meinung nach so verworren, dass ich das nicht wirklich rausbekommen habe, welcher Buffer nun gemeint ist und wie sich das realisieren lässt.

Hat jemand nen Vorschlag? Oder auch ne fertige Klasse für sowas?

1.549 Beiträge seit 2004
vor 18 Jahren

Wenn ich das richtig sehe musst du


public Image GetImage(string urlFile)
{
    WebRequest wreq = WebRequest.Create( urlFile );
    HttpWebResponse httpResponse = (HttpWebResponse) wreq.GetResponse();
    Stream stream = httpResponse.GetResponseStream();
    return Image.FromStream(stream);
}

hier einfach den rückgabe wert speichern also das bild

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

1.549 Beiträge seit 2004
vor 18 Jahren

hab mir das ganze noch mal genauer angesehnen um die Datei zu speichern musst du das byte[] das die Methode WebDownload.Download zurück gibt speichern


public void Download()
		{
			if ( CompleteCallback != null && 
				  DownloadUrl != "" )
			{
				WebDownload webDL = new WebDownload();
				byte[] da = webDL.Download(DownloadUrl, 
																	ProgressCallback );
				FileStream fs = File.OpenWrite("dateiname");
				fs.Write(da, 0, da.Length);
				fs.Close();

				CompleteCallback( da );
			}
		}

die leicht veränderte Methode Download der Klasse DownloadThread für dateiname einfach den Pafd angeben + dateinahme in den du die Datei speichern wilst z.B "C:\\test.xyz"

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 18 Jahren

Stimmt so funktionierts, wobei ich bei meinem FileStream Append als FileMode genommen habe, da er das ja immer Blockweise reinschreibt. Aber funktioniert tadellos thx 🙂