Laden...

[gelöst] Binär datei aus Datenbank beim client abspeichern?

Erstellt von techno_prog vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.137 Views
T
techno_prog Themenstarter:in
90 Beiträge seit 2007
vor 16 Jahren
[gelöst] Binär datei aus Datenbank beim client abspeichern?

Hi an alle also ich hab in ner datenbank dateien Binär abgespeichert, jetzt möchte ich die dateien auf dem client speichern, mit nen speicherdialog das ist bis jetzt kein problem, mir bringt der browser nen dialog speichern unter, usw. dan geh ich auf speichern aber die datei die er speichet ist leer also 0 Byte

hier mal der code den ich benutze, ps: des ist ein webprojekt mit einer aspx seite



string sqlstring = "SELECT Daten, contenttype, Dateiname FROM Dateien WHERE id="+id.ToString();
OleDbConnection conn = new OleDbConnection (connstring);
Output_Conn.Open ();
OleDbCommand CMD = new OleDbCommand (sqlstring, conn);
OleDbDataReader dr = Output_CMD.ExecuteReader ();
if ( dr.Read())
{
System.Web.HttpContext.Current.Response.ContentType = dr["contenttype"].ToString();
System.Web.HttpContext.Current.Response.AddHeader( "content-disposition","attachment;
filename="+dr["Dateiname"].ToString()); System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
conn.Close();

Hab ich irgend was vergessen? bin neu auf dem bereich glaub da muss ich die datei irgendwie noch schreiben weis aber nicht mit welchem befehl mit WriteFile bekomm ich nur nen error das die datei nicht aufn server liegtdanke für die hilfegruß pascal

Wer Rechtschreibfehler findet darf sie gern behalten 😄, bin froh wenn ich Sie loswerde 👅 😉

T
210 Beiträge seit 2006
vor 16 Jahren

Du schickst ja gar nicht den Stream...

Wenn daten z.B. ein byte-Array ist, kannst Du mit Response.BinaryWrite(daten);
den Stream schicken.

T
techno_prog Themenstarter:in
90 Beiträge seit 2007
vor 16 Jahren

Das ist ja das problem, die variable dr["Daten"] enthält ja ein Byte[] (habs ja Binär abgespeichert, oder lieg ich da falsch wenn ich nämlich nun

System.Web.HttpContext.Current.Response.Write(dr["Daten"].ToString());

schreib steht da nur System.Byte[] auch wenn ich nur dr["Daten"] angebe!

jetzt muss ich irgendwie die daten aus dem Byte [] wieder als string bekommen?

Wer Rechtschreibfehler findet darf sie gern behalten 😄, bin froh wenn ich Sie loswerde 👅 😉

T
210 Beiträge seit 2006
vor 16 Jahren

Response.BinaryWrite((byte[])dr["Daten"]);

T
techno_prog Themenstarter:in
90 Beiträge seit 2007
vor 16 Jahren

danke für die schnelle hilfe hät ich ja auch selber finden müsse (schäm) wird langsam zeit für Wochenende G

gruß pascal

Wer Rechtschreibfehler findet darf sie gern behalten 😄, bin froh wenn ich Sie loswerde 👅 😉