php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.08.2004, 09:30  
Gast
 
Beiträge: n/a
Standard [Erledigt] Bild hochladen --> verkleinern --> in Datenbank speich

Hallo zusammen,

ich versuche verzweifelt ein bild zu laden .. es zu verkleinern.. und dann in die Datenbank zu speichern.

Einlesen des Bildes: inserat.php
Code:
<form action=\"inserat-mysql.php\" method=\"post\" enctype=\"multipart/form-data\">

<table border=\"0\" width=\"60%\">
...
...
...  
<td width=\"28%\"><input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000000\"><input type=\"file\" name=\"bin_data\"></td>
Hier soll das Bild im Speicher verkleinert werden und in die Datenbank geschrieben werden (als BLOB): inserat-mysql.php
Code:
...
if ($bin_data){ 	// wenn Bild hochgeladen wurde, dann soll das hier ausgeführt werden damit es in die Datenbank geladen werden kann

	$data2 = addslashes(fread(fopen($bin_data, "r"), filesize($bin_data)));
	echo" Dateiname: $bin_data_name
 Dateigröße: $bin_data_size
 Dateityp: $bin_data_type
";
}

// funktion zum verkleinern
   function createIMG($img_src, $img_width , $img_height, $des_src) {
      $im = imagecreatefromjpeg($img_src);
      list($src_width, $src_height) = getimagesize($img_src);
      echo "$src_width";
      echo "$src_height";
      if($src_width >= $src_height) {
         $new_image_width = $img_width;
         $new_image_height = $src_height * $img_width / $src_width;
      }
      if($src_width < $src_height) {
         $new_image_height = $img_width;
         $new_image_width = $src_width * $img_height / $src_height;
      }
      $new_image = imagecreate($new_image_width, $new_image_height);
     //imagecopyresized($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
  imagecopyresampled ($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);


    $des_src =  imagejpeg($new_image, 60 );
}
// --------------- bild verkleinern---------------------

                                  // zu verkleinernde Datei : data2  
   $data;  	                  // veränderte datei
   $groesse_x = "300";            // maximale Seitenlänge x
   $groesse_y = "300";            // maximale seitenlänge y
  createIMG($data2, $groesse_x, $groesse_y, $data);   // verkleinern

if (isset($inserieren) AND ($modell)) {

$sql = "INSERT INTO autos (kurzbeschreibung,marke,modell,kategorie,kraftstoff,leistung,baujahr,kilometer,farbe,hsn,tsn,ausstattung,zustand,plz,ort,telefon,handy,email,bin_data,filename,filesize,filetype,ip,host) VALUES ('kurzbeschreibung','$marke','$modell','$kategorie','$kraftstoff','$leistung','$baujahr','$kilometer','$farbe','$hsn','$tsn','$ausstattung','$zustand','$plz','$ort','$telefon','$handy','$email','$data','$bin_data_name','$bin_data_size','$bin_data_type','$ip','$host')";
  
mysql_query ($sql) or die("Problem beim laden in DB: " . mysql_error());

}
if (!$inserieren){ echo "Das geht fai nicht, gell?!!";}
mysql_close();

Leider erhalte ich folgende Fehlermeldungen:

Dateiname: PICT0013.JPG
Dateigröße: 1214156
Dateityp: image/pjpeg

Warning: imagecreatefromjpeg(ÿØÿáØEExif\0\0II*\0\0\0\ 0 \0\0 \0\0\0ž\0\0\0\0\0\0\0¾\0\0\0\0 \0\0\0Ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0ê\0\ 0\0\0\0\0\0ò\0\0\0(\0\0\0\0\0\0\01\0\0 \0\0ú\0\0\02\0\0\0\0\0\0\0\0\0\0\0\0\0i ‡\0\0\0\0V\0\0¥Ä\0(\0\0\0.\0\0\0\0KONIC A MINOLTA DIGITAL CAMERA \0Konica Minolta Camera, Inc.\0\0\0DiMAGE Xg\0\0\0\0\0H\0\0\0\0\0\0H\0\0\0\0\0\0DiMAGE Xg Ver1.02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02004:07:31 19:10:27\0PrintIM\00250\0\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0\0%\0š‚\0\0\0\0\0\0‚\ 0\0\0\0 \0\0\"ˆ\0\0\0\0\0\0\0\'ˆ\0\0\0\02\0\0\0\0 \0\0\0\00220\0\0\0\0(\0\0\0\0\0\0<\ 0\0‘\0\0\0\0\0‘\0\0\0\0P\0\0’ \0\0\0\0X\0\0’ \0\0\0\0`\0\0’\0\0\0\0h\0\0’\0\0\0\0 \0\0\0’\0\0\0\0\0\0\0\0 ’\0\0\0\0 \0\0\0 ’\0\0\0\0p\0\0’\0\0\0\0x\0\0|’\0ø\ 0\0‚\0\0*’\0}\0\0\0€\0\0\0 \0\0\0\00100 \0\0\0\0\0\0\0 \0\0\0\0\0\0\0 \0\0\0\0\0\0\0 \0\0\0\0d\0\0\0£\0\0\0\0\0\0\0£\0\0\0\0 \0\0\0¤\0\0\0\0\0\0\0\0¤ in /var/www/html/web181/html/inserat-mysql.php on line 22

Warning: getimagesize(ÿØÿáØEExif\0\0II*\0\0\0\0 \0\0 \0\0\0ž\0\0\0\0\0\0\0¾\0\0\0\0 \0\0\0Ü\0\0\0\0\0\0\0\0\0\0\0\0\0\0ê\0\ 0\0\0\0\0\0ò\0\0\0(\0\0\0\0\0\0\01\0\0 \0\0ú\0\0\02\0\0\0\0\0\0\0\0\0\0\0\0\0i ‡\0\0\0\0V\0\0¥Ä\0(\0\0\0.\0\0\0\0KONIC A MINOLTA DIGITAL CAMERA \0Konica Minolta Camera, Inc.\0\0\0DiMAGE Xg\0\0\0\0\0H\0\0\0\0\0\0H\0\0\0\0\0\0DiMAGE Xg Ver1.02\0\0\0\0\0\0\0\0\0\0\0\0\0\0\02004:07:31 19:10:27\0PrintIM\00250\0\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0\0%\0š‚\0\0\0\0\0\0‚\ 0\0\0\0 \0\0\"ˆ\0\0\0\0\0\0\0\'ˆ\0\0\0\02\0\0\0\0 \0\0\0\00220\0\0\0\0(\0\0\0\0\0\0<\ 0\0‘\0\0\0\0\0‘\0\0\0\0P\0\0’ \0\0\0\0X\0\0’ \0\0\0\0`\0\0’\0\0\0\0h\0\0’\0\0\0\0 \0\0\0’\0\0\0\0\0\0\0\0 ’\0\0\0\0 \0\0\0 ’\0\0\0\0p\0\0’\0\0\0\0x\0\0|’\0ø\ 0\0‚\0\0*’\0}\0\0\0€\0\0\0 \0\0\0\00100 \0\0\0\0\0\0\0 \0\0\0\0\0\0\0 \0\0\0\0\0\0\0 \0\0\0\0d\0\0\0£\0\0\0\0\0\0\0£\0\0\0\0 \0\0\0¤\0\0\0\0\0\0\0\0¤\0\0\0 in /var/www/html/web181/html/inserat-mysql.php on line 23

Warning: Division by zero in /var/www/html/web181/html/inserat-mysql.php on line 28

Warning: imagecreate(): Invalid image dimensions in /var/www/html/web181/html/inserat-mysql.php on line 34

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/html/web181/html/inserat-mysql.php on line 36

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/html/web181/html/inserat-mysql.php on line 39



kann mir jemand sagen worann das liegen kann ??

danke im vorraus

andi
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.08.2004, 10:04  
Gast
 
Beiträge: n/a
Standard kann mir jemand damit weiterhelfen ?

ich will ja nicht nerven aber ich hab echt ein problem .. und würde mich echt freuen wenn mir jemand einen tipp geben könnte.
  Mit Zitat antworten
Alt 09.08.2004, 08:42  
Erfahrener Benutzer
 
Registriert seit: 17.10.2003
Beiträge: 243
MrMarco
Standard

1. Poste mal die wichtigen Teile des fehlerhaften Codes.

2. Lass es mit dem Speichern von Grafiken in Datenbanken. Das ist unfein und unsinnig. Sowas gehört ins Filesystem und in der Datenbank sollte nur eine Referenzierung stehen. Kostet unnötig Speicher in der Datenbank und ist langsamer als das Direkte Anzeigen vom Filesystem aus. So mußt du es IMMER über ein Script jagen, was die Daten aus der Datenbank zieht, sie aufbereitet zum Anzeigen und dann zum Client schickt.
MrMarco ist offline   Mit Zitat antworten
Alt 09.08.2004, 12:52  
Gast
 
Beiträge: n/a
Standard

welche teile des codes fehlen dir ? auf einer seite lade eich ein bild.. übergebe es an eine andere seite ... und will es dann verkleinern um es im format 300x300 in die Datenbank zu legen

Das mit der datenbank ist mir schon klar .. aber ich würd es eben trotzdem gern machen die bilder werden ja nur maximal 15k groß
  Mit Zitat antworten
Alt 09.08.2004, 13:53  
Erfahrener Benutzer
 
Registriert seit: 17.10.2003
Beiträge: 243
MrMarco
Standard

Mir sagt die Fehlermeldung so nichts. Ich muß den Zusammenhang mit dem Source haben.

Ich könnte jetzt wild drauflos raten, aber ich ziehe dann doch eine Analyse vor.

Egal wie groß die Bilder sind, sowas gehört halt nicht in eine Datenbank. Du belastest den Server nur unnötig. Hach, manchmal sehne ich die Zeiten herbei wo 16 KB sehr viel waren und die CPUs mit 1,70 Mhz liefen. Da lernte man noch mit Resourcen umzugehen Ist jetzt nichts gegen dich, sondern zeigt nur eine in meinen Augen negative Entwicklung auf in der heutigen Zeit.
MrMarco ist offline   Mit Zitat antworten
Alt 28.02.2011, 05:05  
Neuer Benutzer
 
Registriert seit: 28.02.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Chnutz befindet sich auf einem aufstrebenden Ast
Standard Nach langer Zeit das gleiche Problem

Das Problem ist bei mir das gleiche wie bei dem Threadersteller oben. Da ich den ganzen Tag herumgesucht und nur diesen unbeantworteten Thread gefunden habe, schreibe ich nochmal in diesen alten Thread hinein.

Um mein Problem (und das vom ersten User ) genauer zu spezifizieren:

PHP-Code:
//Ich nutze die GD-Funktion imgcreate() oder imgcreatetruecolor, um ein neues Image zu generieren:
$thumb ImageCreateTrueColor($thumbbreite,$thumbhoehe);

// In dieses kopiere ich nun ein Bild, was ich genau wie der Kollege oben aus einem Formular erhalten habe (welches ich hier nicht poste. Es funktioniert auf jeden Fall). Zunächst das Original:

$Bilddatei addslashes(fread(fopen(($_FILES['Bilddatei']['tmp_name']), "r"), 
filesize($_FILES['Bilddatei']['tmp_name'])));

//Dann Original nochmal zum Bearbeiten in ein kreiertes Image
$originalbild ImageCreateFromJPEG($_FILES['Bilddatei']['tmp_name']);

//Größe des Originals ermitteln
$breite ImageSX($originalbild);
$hoehe ImageSY($originalbild);

// und passe dabei die Größe an:

$thumbbreite 250;
        
//Berechnen Thumbhoehe
$thumbhoehe intval($hoehe $thumbbreite $breite);
        
ImageCopyResized($thumb,$originalbild,0,0,0,0,$thumbbreite,$thumbhoehe,$breite,$hoehe);


//Dieses möchte ich nun mit dem vorher geladenen Original in ein BLOB meiner Datenbank schreiben (Ja, wirklich, in die db, trotz Ressourcenverbrauch, Danke für alle Hinweise dazu, das ist nicht die Frage ;-) )

///HIER brauche ich nun Hilfe, siehe unten nach dem Code


//Ab hier funktioniert wieder alles, außer dem Nachbeschriebenen
$qryInsert "INSERT INTO tanzbilder (Datei,Thumb) ".
        
"VALUES ('$Bilddatei','$thumb')"
Durch Test mit imagejpeg($thumb) weiß ich, das $thumb wirklich mit einem Bild gefüllt ist.
Aber lasse ich den Code so wie oben, schreibt es mir nur "Resource-ID#6" in das BLOB-Feld und nicht die Binärdaten selbst. Die hochgeladene Bilddatei wird korrekt übertragen.

Bei dem unbeholfenen Versuch, mit $thumbblob = imagejpeg($thumb) die Daten in $thumbblob zu bekommen und die Variable dann zu speichern, ignoriert php das und gibt die Binärdaten auf dem Bildschirm aus. Der Effekt ist bei dem ersten Post oben zu sehen.

Also: Wie bekomme ich den Inhalt von $thumb in die Datenbank, statt nur die ID?

Ich danke im Vorraus
Chnutz ist offline   Mit Zitat antworten
Alt 28.02.2011, 06:00  
Neuer Benutzer
 
Registriert seit: 28.02.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Chnutz befindet sich auf einem aufstrebenden Ast
Standard 18 Stunden gesucht, hier gefragt - und nach 10 Minuten selbst Antwort gefunden...

Das Problem war ja, irgendwie an den Inhalt vom Image $thumb zu kommen.
Nun habe ich herausgefunden wie es geht und erfolgreich getestet:

Eingefügt werden muss zwischen dem kompletten Image-Erzeugen und vor dem SQL-String noch dies:

PHP-Code:
//Thumb in ein Objekt schreiben
        
ob_start();
        
imageJPEG($thumb);
        
$thumbtmp=ob_get_contents();
        
ob_end_clean();  

//Das "Objekt" noch SQL-lesbar machen        
        
$thumbblob addslashes($thumbtmp); 
Damit geht es wunderbar, also schnell den alten Thread wieder zugemacht, Danke, das Ihr im Geiste bei mir wart
Chnutz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Bild verkleinern PHP Tipps 2004 3 23.03.2009 17:19
Bild (beim Hochladen) verkleinern Heizkessel PHP Tipps 2008 1 27.01.2008 21:33
[Erledigt] Bild verkleinern vor Upload PHP Tipps 2007 10 27.11.2007 22:02
Bild verkleinern und EXIF BaedDog PHP-Fortgeschrittene 7 18.04.2006 12:44
Bild mit Textausgabe aus Datenbank!! Datenbanken 12 07.01.2006 12:34
Bild aus einer Datenbank laden Unknown PHP Tipps 2005-2 5 26.09.2005 01:38
[Erledigt] Bild aus Datenbank holen und als File speichern PHP Tipps 2005-2 2 05.07.2005 13:35
[Erledigt] bild in die datenbank? PHP Tipps 2005 3 19.05.2005 10:00
Bild hochladen und das Format gleichzeitig formatieren... 18inch PHP-Fortgeschrittene 9 21.11.2004 17:19
Problem beim Bild hochladen PHP Tipps 2004-2 7 11.11.2004 16:15
Bilder hochladen mit/ohne Datenbank 'progman' PHP Tipps 2004 9 19.10.2004 21:03
Bild hochladen Beitragsarchiv 3 29.08.2004 22:15
Bild upload in Verzeichniss/ Bild-Name in MySQL Datenbank PHP Tipps 2004 5 10.08.2004 13:17
[Erledigt] Bildlink aus Datenbank als Bild auf der Homepage anzeigen.. PHP Tipps 2004 5 25.07.2004 20:08
[Erledigt] Bildurl aus Datenbank auf der Homepage als Bild anzeigen HTML, Usability und Barrierefreiheit 4 25.07.2004 20:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bild auf 300x300 verkleinern, bilder verkleinern 300x300, bild verkleinern 300x300, bilder auf 300x300 verkleinern, bilder 300x300, bilder verkleinern auf 300x300, hsn tsn datenbank, bild verkleinern auf 300x300, bilder auf 300 x 300 verkleinern, 300x300 bilder, bilder hochladen 300x300, php bild verkleinern und speichern, bild 300x300, bild verkleiner 300x300, bilder in datenbank hochladen, bilder auf 300x300, php bilder verkleinern und speichern, bild 300x300 verkleinern, bilder 300x300 machen, bilder verkleiner 300x300

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.