php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.05.2010, 11:59  
McK
Neuer Benutzer
 
Registriert seit: 01.11.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
McK befindet sich auf einem aufstrebenden Ast
Standard Problem bei Image speichern in DB

Hallo,

ich habe ein kleines Problem beim Speichern eines Image in eine Datenbank.

Vorab kurz mein Code:
PHP-Code:
$datei=$_FILES['datei']['tmp_name'];
$bild=addslashes(fread(fopen($datei"r"), filesize($datei)));
        
// Create Image 
$tmp_image imagecreatefromjpeg($bild);
      
// Höhe und Breite des Surce Image ermitteln
$src_width imagesx($tmp_image); 
$src_height imagesy($tmp_image);

// Neue Höhe und Breite ermitteln
if ($src_width $src_height) {
  
$width_new  '100';
  
$new_image_height intval($src_height $width_new $src_width);
} else {
  
$height_new '100';
  
$new_image_width  intval($src_width $height_new $src_height);
}
        
$new_image imagecreatetruecolor($new_image_width$new_image_height);
        
imagecopyresized($new_image$tmp_image0000$new_image_width$new_image_height$src_width$src_height);

ob_start(); 
ob_clean();
ImageJPEG($new_image);
$data_img ob_get_contents(); 
ob_end_clean(); 
imagedestroy($new_image);
$dbdata_img addslashes($data_img);
   
do_sql("UPDATE info SET pict='".base64_encode($dbdata_img)."' WHERE uid='".$userid."'","user"); 
Wenn ich $bild direkt in UPDATE info SET pict='".$bild.'" speichere (ohne scallieren) funktioniert es, habt ihr noch eine Idee wo mein Fehler liegt?

Schon mal Danke!
McK ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.05.2010, 12:15  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

error_reporting (und Kopf am besten auch gleich) einschalten, Meldungen posten.
"Funktioniert nicht" ist und bleibt keine vernünftige Fehlerbeschreibung. FG ist das keinesfalls...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 14.05.2010, 12:17  
McK
Neuer Benutzer
 
Registriert seit: 01.11.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
McK befindet sich auf einem aufstrebenden Ast
Standard

Sorry hätte ich schreiben sollen, Seite wird ohne Error ausgeführt
McK ist offline  
Alt 14.05.2010, 12:24  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von McK Beitrag anzeigen
Sorry hätte ich schreiben sollen, Seite wird ohne Error ausgeführt
Sorry, das halte ich für ein Gerücht.

PHP-Code:
$datei=$_FILES['datei']['tmp_name'];
$bild=addslashes(fread(fopen($datei"r"), filesize($datei)));
        
// Create Image 
$tmp_image imagecreatefromjpeg($bild); 
Ich garantiere dir, das $tmp_image kein Resource ist... was du da einschiesst ist NICHT das, was die Funktion erwartet.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 14.05.2010, 19:06  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Darf ich aber mal fragen was das Thema im Fortgeschrittenen Forum zu suchen hat?
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 14.05.2010, 19:32  
McK
Neuer Benutzer
 
Registriert seit: 01.11.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
McK befindet sich auf einem aufstrebenden Ast
Standard

Danke für den Gedankenanstoss, manchmal sieht man den Wald vor Lauter Bäumen nicht

hier die (fast) fertige funktion.... ist noch verbesserungsbedürftig, aber ne Hilfe für suchende

PHP-Code:
// funktion scaleImageFileToBlob(image, breite, höhe, schneiden0/1)

function scaleImageFileToBlob($file$max_width$max_height$cut) {

    
$source_pic $file;

    list(
$src_width$src_height$image_type) = getimagesize($file);

    switch (
$image_type)
    {
        case 
1$src imagecreatefromgif($file); break;
        case 
2$src imagecreatefromjpeg($file);  break;
        case 
3$src imagecreatefrompng($file); break;
        default: return 
'';  break;
    }

    
// 
    
$x_ratio $max_width $src_width;
    
$y_ratio $max_height $src_height;

    
// Seitenverhältnisse beibehalten
    
if($cut == or !isset($cut)){
        if( (
$src_width <= $max_width) && ($src_height <= $max_height) ){
            
$tn_height $src_height;
            
$tn_width $src_width;
        }elseif ((
$x_ratio $src_height) < $max_height){
            
$tn_height ceil($x_ratio $src_height);
            
$tn_width $max_width;
        }else{
            
$tn_height $max_height;
            
$tn_width ceil($y_ratio $src_width);
        }
        
$left 0;
        
$top 0;
        
        
$tmp imagecreatetruecolor($tn_width,$tn_height);
    }
    
    
// Bild auf Absolutwerte zuschneiden, mittig Zentriert
    
if($cut == 1){
        if( (
$src_width <= $max_width) && ($src_height <= $max_height) ){
            
$tn_height $max_height;
            
$tn_width $max_width;
            
$left 0;
            
$top 0;
        }else{
            
// hochformat
            
if ($src_width $src_height){
                
$tn_height ceil($x_ratio*$src_height);
                
$tn_width $max_width;
                
$left 0;
                
$top = -(ceil($x_ratio*$src_height)-$max_height)/2;
            }
            
// querformat
            
if ($src_width $src_height){    
                
$tn_height $max_height;
                
$tn_width ceil($y_ratio*$src_width);
                
$left = -(ceil($y_ratio*$src_width)-$max_width)/2;
                
$top 0;
            }
        }
        
        
$tmp imagecreatetruecolor($max_width,$max_height);
    }

    
// Prüfe ob Bild PNG oder GIF ist (transparent)
    
if(($image_type == 1) OR ($image_type==3))
    {
        
imagealphablending($tmpfalse);
        
imagesavealpha($tmp,true);
        
$transparent imagecolorallocatealpha($tmp255255255127);
        
imagefilledrectangle($tmp00$tn_width$tn_height$transparent);
    }
    
imagecopyresampled($tmp,$src,$left,$top,0,0,$tn_width$tn_height,$src_width,$src_height);

    
ob_start();

    switch (
$image_type)
    {
        case 
1imagegif($tmp); break;
        case 
2imagejpeg($tmpNULL100);  break; // best quality
        
case 3imagepng($tmpNULL0); break; // no compression
        
default: echo ''; break;
    }

    
$final_image ob_get_contents();

    
ob_end_clean();

    return 
$final_image;

EDIT:

Auch Fortgeschrittene machen mal Anfängerfehler, trotzdem sollte man sich gegenüber freundlich bleiben und gegenseitig helfen

Zur Funktion (für Anfänger):

Achtung vorher $_FILES gescheit prüfen!
PHP-Code:
// funktion scaleImageFileToBlob(image, breite, höhe, schneiden0/1)

$image scaleImageFileToBlob($_FILES['datei']['tmp_name'], 4203001);
$image addslashes($image);

// $image ganz normal in DB speichern BLOB 
Grüße!

Geändert von McK (14.05.2010 um 19:54 Uhr).
McK ist offline  
Alt 15.05.2010, 14:08  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von McK Beitrag anzeigen
EDIT:

Auch Fortgeschrittene machen mal Anfängerfehler, trotzdem sollte man sich gegenüber freundlich bleiben und gegenseitig helfen
Natürlich, aber da dein Thread im Fortgeschrittenen Forum gepostet wurde und du dich auch als Fortgeschrittener eingestuft hast, werden von dir gewisse Voraussetzungen erwartet. Dein Fehler ist mir aufgefallen, ohne das ich deinen Code ausgeführt habe - und es wären auf jeden Fall Fehler ausgegeben worden, wäre das error_reporting gescheit eingestellt gewesen. Eine der Sachen, die von dir als Fortgeschrittener erwartet wird, ebenso wie eine brauchbare Fehlerbeschreibung...

Geholfen wurde dir, hoffentlich nimmst du die Ratschläge auch an
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 15.05.2010, 16:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Gedankenanstoss
Is klar.

[MOD: Thread geschlossen]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Thema geschlossen


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
Image Problem coolerj PHP Tipps 2010 8 17.03.2010 20:34
PDF per PHP - Problem bei "Ziel speichern unter..." freq.9 PHP Tipps 2006 7 18.08.2006 16:54
"ziel speichern unter" problem snatch-ic PHP Tipps 2006 12 13.04.2006 13:40
Image Problem CHRIS PHP Tipps 2006 3 27.01.2006 12:38
Problem mit Image as link ausloser stat text in java script. Bruce HTML, Usability und Barrierefreiheit 5 17.01.2006 11:31
Problem mit Formulardaten in MySql-DB speichern karl Datenbanken 2 05.12.2005 23:49
problem mit rollover-button lukatsch HTML, Usability und Barrierefreiheit 5 04.11.2005 19:03
Problem mit dem speichern in der DB PHP Tipps 2007 4 04.11.2005 16:24
Image Hosting Problem PHP Tipps 2005-2 2 15.10.2005 20:14
Problem mit Wasserzeichen auf Bildern pixelcut PHP-Fortgeschrittene 16 14.12.2004 02:36
image problem Ohrwurm83 PHP Tipps 2004 3 31.10.2004 00:18
image mit php verändern und speichern, dann original löschen Promaetheus PHP Tipps 2004 2 28.10.2004 18:07
Webmail mit IMAP / Problem mit Attachment speichern. PHP-Fortgeschrittene 1 13.10.2004 10:06
Problem: PHP Ergebnis in HTML speichern PHP Tipps 2004 17 23.07.2004 23:56
Ich hab ein problem mit dem speichern von formular daten PHP Tipps 2004 7 23.06.2004 07:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php bild in blob db speichern, php bild blob transparent speichern, picture db php, was ist db-fehler, scaleimagefiletoblob, php bild speichern fehler, deutsche bahn image, list($breite, $hoehe, $image_type), image aus datenbank php, image spreiche, blob db fopen image url

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:28 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