Binärdaten in SQL-Tabelle -> Ausgabe skaliert

LN5

Mitglied
Hello everbody

Ich habe folgendes Problem:

mit diesem Script rufe ich ein Bild auf, welches ich zuvor in einer SQL-Tabelle gespeichert habe:

PHP:
[...]   $ResultPointer = mysql_query($SQL, $DatabasePointer);
   $Result=mysql_fetch_object($ResultPointer);

   header("Content-type: ".$Result->Dateityp);
   header("Content-length: ".$Result->Dateigroesse);
   header("Content-Disposition: attachment; filename=".$Result->Dateiname);
   echo$Result->Daten;
[...]

Die Ausgabe läuft super! Alles kein Problem. Nun habe ich aber User, die viel zu Grosse (über 500px breite) Bilder hochladen. Diese habe ich bis dato einfach bei der Ausgabe mit width='500' "skaliert". Jetzt möchte ich das aber eleganter lösen. Sachen wie ImageCreateFromJPEG und solche Spässe klappen leider nicht. Wie würdet ihr das am ehesten lösen?

Danke für die Hilfe.
 
Einfach die Bilder schon beim Upload resizen, bevor du Sie in die Datenbank schreibst.
Zieh das Image ins TMP, resize es, speicher es in der Datenbank und lösche das TMP-File!!

Ich such mal meine IMG-Resizer raus, könnt aber ein wenig dauern :rolleyes:
 
Hey TvP

Hat was; ist bestimmt schlauer, das Bild im Vornherein zu resizen. Das "Upload-Script" läuft wie folgt:

PHP:
	  $Daten = addslashes(fread(fopen($_FILES['Datei']['tmp_name'], "r"), filesize($_FILES['Datei']['tmp_name'])));
   	$SQL = mysql_query("SELECT * FROM Dateien WHERE User='$SESSION_SR'");
      if(mysql_num_rows($SQL) == 1){
	  $SQL = "UPDATE Dateien SET ";
      $SQL .= "id = '', Dateiname = '".$_FILES['Datei']['name']."', Dateigroesse = '".$_FILES['Datei']['size']."', Dateityp = '".$_FILES['Datei']['type']."', Daten = '".$Daten."', User='$SESSION_SR', Datum='$jetzt'";
	  $picSQL= "UPDATE mitglieder SET pic = 'Ja' WHERE nick = '$SESSION_SR'";
	  mysql_query($picSQL, $DatabasePointer);
	  }else{
	  $SQL = "INSERT INTO Dateien ";
      $SQL .= "(id, Dateiname, Dateigroesse, Dateityp, Daten, User, Datum) VALUES ";
      $SQL .= "('','".$_FILES['Datei']['name']."', '".$_FILES['Datei']['size']."', '".$_FILES['Datei']['type']."', '".$Daten."', '$SESSION_SR', '$jetzt')";
	  $picSQL= "UPDATE mitglieder SET pic = 'Ja' WHERE nick = '$SESSION_SR'";
	  mysql_query($picSQL, $DatabasePointer);
      }

Bin gespannt auf deine Antwort.
 
Zurück