Laden...

Image aus MySQL - Parameter is not valid

Erstellt von Madis82 vor 13 Jahren Letzter Beitrag vor 13 Jahren 851 Views
M
Madis82 Themenstarter:in
2 Beiträge seit 2009
vor 13 Jahren
Image aus MySQL - Parameter is not valid

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

1.433 Beiträge seit 2006
vor 13 Jahren

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