none
Bild in string und zurück RRS feed

  • Frage

  • Hallo.

    Ich bin auf der Suche nach folgendem:

    Ich habe eine Datenbank, deren Schema ich leider nicht ändern kann. Nun gibt es eine Spalte vom Typ nvarchar(max) in die ich ein Bild speichern sollte. D.h. ich sollte ein Bild einlesen und das byte[] danach in einen string umwandeln. Danach wird der auf die Datenbank gespeichert. Um das Bild wieder anzuzeigen, sollte ich den String wieder von der Datenbank lesen und in ein byte[] umwandeln. Ich habe nun mal folgendes versucht, leider ohne Erfolg - d.h. das Bild aus Datei 222.jpg kann nicht mehr angezeigt werden (zum testen mal ohne Datenbank sondern lediglich mit einem Textfile als Zwischenspeicher):

    FileStream fs = new FileStream("c:\\temp\\1.jpg", FileMode.Open, FileAccess.Read);
    byte[] picbyte = new byte[fs.Length];
    fs.Read(picbyte, 0, System.Convert.ToInt32(fs.Length));
    fs.Close();
    var str = this.ByteArrayToString(picbyte);
    File.WriteAllText("c:\\temp\\111.txt", str, new System.Text.ASCIIEncoding());
    str = File.ReadAllText("c:\\temp\\111.txt", new System.Text.ASCIIEncoding());
    picbyte = this.StringToByteArray(str);
    fs = new FileStream("c:\\temp\\222.jpg", FileMode.CreateNew, FileAccess.Write);
    fs.Write(picbyte, 0, picbyte.Length);
    fs.Close();
    
    private byte[] StringToByteArray(string str) {
      var enc = new System.Text.ASCIIEncoding();
      return enc.GetBytes(str);
    }
    
    private string ByteArrayToString(byte[] arr) {
      var enc = new System.Text.ASCIIEncoding();
      return enc.GetString(arr);
    }
    

    Ich hoffe, es kann mir jemand einen Tipp geben, wie ich das Ziel erreichen kann.

    Vielen Dank.

    Grüsse, Thomas

     

     

    Montag, 25. Oktober 2010 19:42

Antworten

Alle Antworten