Hallo zusammen,
ich bin hier schon ne ganze weile Angemeldet und bisher konnten mir die schon geposteten Beiträger immer helfen. Nun bin ich aber auf ein Problem gestoßen zu dem ich keinen Beitrag gefunden habe und das auch im Internet kaum angesprochen wird. Jetzt hoffe ich, hier doch jemanden zu finden, der mein Problem versteht und vielleicht auch eine Lösung hat.
Ich habe eine Web Applikation, bei der ich Bilder Uploaden kann, die in einer MySQL Datenbank (Datentyp des Feldes: LongBLOB) gespeichert werden. Der Upload funktioniert auch ganz gut.
Hier der Code für den Upload:
private void uploadFile(System.Web.HttpPostedFile postedFile)
{
try
{
#region read buffer
byte[] buffer = new byte[postedFile.ContentLength];
postedFile.InputStream.Read(buffer, 0, buffer.Length);
#region init File object
//FileList ist eine SortedList, diese wird mit dem Event (OnFileUploaded) zurückgegeben
FileList[System.IO.Path.GetFileName(postedFile.FileName)] = buffer;
#endregion
#region fire event
OnFileUploaded(this, null);
#endregion
}
catch
{
;
}
}
//Teil aus einer Funktion die für das Speichern verantwortlich ist.
#region Save AddvFile
foreach (byte[] BLOB in FileUpload.FileList.Values)
{
try
{
file = addvfile.Newaddvfile();
file.FileName = mapName;
file.Content = BLOB;
file.Flags = 0;
if (file.Save() == false)
{
ClientData.Message = getString("TextErrorOnSaveFile");
break;
}
}
catch (Exception exc)
{
ClientData.Message = String.Format("{0}, Error Text:{1}", getString("TextErrorOnSaveFile"), exc);
break;
}
}
So, soweit so gut.
Das funktioniert auch und wenn ich in der gleichen Session das Bild auswähle und anzeigen möchte funktioniert das auch.
Wenn ich jetzt aber die Web Applikation beende und neu starte und das Bild neu lade...
Hier der Code dafür:
addvfile file = addvfile.Getaddvfile(UInt64.Parse(FileUID));
byte[] buffer = (byte[])file.Content;
System.IO.MemoryStream stream = new System.IO.MemoryStream(buffer, true);
stream.Write(buffer, 0, buffer.Length);
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
... bekomme ich eine Exception "Parameter is not valid". Beim genaueren betrachten des ganzen habe ich dann festgestellt, dass die geladene Datei 28 Byte größer ist als beim Upload. Wobei wie schon erwähnt, lade ich die Datei hoch und lasse Sie dann einzeigen der Fehler nicht auftritt.
So nun hab ich das niedergeschrieben was ich gemacht und herausgefunden habe, aber irgendwie kann ich mir das ganze immer noch nicht erklären was ich hier falsch mache.
Vielleicht kennt sich einer von euch damit aus und kann mir helfen.
Schonmal vielen Dank für das durchlesen meines Problems und vielleicht auch darauf antworten.
Viele Grüße
Matthias
Wann und wie lädst Du das Bild neu? Gleich beim Laden der Seite oder wenn man zum Beispiel auf ein Thumbnail klickt?
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt