php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.09.2009, 10:34  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard [Erledigt] Problem beim Thumbnail erstellen beim Bildupload

Hallo Leute,

ich melde mich nun auch mal wieder mit einem kleinen Problemchen wo ich ne Weile festhenge.

Ich habe und nutze schon eine Weile meine kleine Thumbnailfunktion, diese benutzte ich aber immer erst bei der Bildausgabe um Bilder verkleinert anzuzeigen, das funktionierte auch immer ohne Probleme. Nun wollte ich aber, dass gleich beim Bildupload das Bild als Thumbnail gespeichert wird, einfach auch um Resourcen zu sparen. Doch das funktioniert nicht. Das Originalbild wird hochgeladen ohne Problem, aber das Thumbnail Bild nicht.

Hier meine Funtion dazu:
PHP-Code:
<?php
/*
*
* funktion für das erstellen von thumbnails
*
*/
if(!function_exists('thumbnail')){
 
 function 
thumbnail($img,$maximal,$thumb_order,$thumb_name){ //parameter für anwendung der function
 
  
$size getimagesize($img); //ermitteln der bilddaten, höhe,breite und dateityp
  
  //liste der ermittelten bilddaten erstellen, achtung werte
  //werden von rechts nachlinks gelsen
  
list($breite,$hoehe,$datentyp) = $size;
           
  
//ermitteln ob höhe oder breite des bildes größer sind und herunterrechnen
  
if($breite $maximal || $hoehe $maximal){
  
   
//brechnungsfaktor festlegen
   
$rechen_faktor $breite $hoehe;
   
   
//ist der faktor kleiner 1 dann neue breite errechnen
   
if($rechen_faktor 1){
   
    
$neue_breite $maximal $rechen_faktor;
    
$neue_hoehe $maximal;
   }
   
   
//ist der faktor größer oder gleich 1 dann neue höhe errechnen
   
if($rechen_faktor >= 1){
   
    
$neue_hoehe $maximal $rechen_faktor;
    
$neue_breite $maximal;
   
   }
   
   
//thumbnail mit neu errechneten werten anzeigen
   
$thumbnail imagecreatetruecolor($neue_breite,$neue_hoehe);
   
   
//bilder nach bilddatentyp ermitteln mit switch konstrukt nur auf jpg und png
   //ausgerichtet
   
switch($datentyp){
    
    case 
2:
     
$image imagecreatefromjpeg($img);
    break;
    
    case 
3:
     
$image imagecreatefrompng($img);
    break;
    
   }
//ende switch
   
   //neues bild mit allen ermittelten daten in neues verzeichnis kopieren
   
imagecopyresized($thumbnail,$image0000$neue_breite$neue_hoehe$breite$hoehe);
   
   
//neues erstelltes thumbnail nach ermittelten datentyp erstellen
   
switch($datentyp){
    
    case 
2:
     
imagejpeg($thumbnail,$thumb_order.'thumbnail_'.$thumb_name);
    break;
    
    case 
3:
     
imagepng($thumbnail,$thumb_order.'thumbnail_'.$thumb_name);
    break;
    
   }
//ende switch
   
   //rückgabewert der funfunktion
   
return 1;
   
  }
// ende der seitenrechnung
 
}//ende der funktion
}// ende prüfen ob function schon existiert
?>
Und hier mein Code zum Upload:
PHP-Code:
if(is_uploaded_file($_FILES['img']['tmp_name']))
  {
   
$bild $_FILES['img']['tmp_name'];
   
$src ="user/profil_bild/".$_FILES['img']['tmp_name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['tmp_name'];
    
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  } 
Ich denke das ich das da eigentlich richtig mache, den ich muss ja das tmp:file zuweisen, da es ja zu dem Zeitpunkt noch im tmp verzeichnis auf dem Server liegt.

Könnt ihr mir nen Schups geben was ich da falsch mache? Es kann nur eine Kleinigkeit sein auf die ich aber im Moment absolut nicht komme.

Vielen Dank für eure Zeit und Hilfe Mfg litter
__________________
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  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 21.09.2009, 10:42  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Das, was ich sehe ist, dass du $src als ersten Parameter übergibst. Das soll wohl der Dateiname deines Bildes sein. Soweit sogut. Aber existiert das in dem Moment schon? Wo ist denn dein Aufruf zu move_uploaded_file oder ähnlichem?
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline  
Alt 21.09.2009, 10:44  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von mepeisen Beitrag anzeigen
Das, was ich sehe ist, dass du $src als ersten Parameter übergibst. Das soll wohl der Dateiname deines Bildes sein. Soweit sogut. Aber existiert das in dem Moment schon? Wo ist denn dein Aufruf zu move_uploaded_file oder ähnlichem?
Oh das habe ich vergessen mit zu posten.

PHP-Code:
//upload ausführen mit weiterleitung auf wunschdatei
  
move_uploaded_file($_FILES['img']['tmp_name'],"user/profil_bild/".$_FILES['img']['name']);
 
  
//prüfen ob das bild hochgeladen wurde und dann kleines bild kopieren
  
if(is_uploaded_file($_FILES['img']['tmp_name']))
  {
   
$bild $_FILES['img']['tmp_name'];
   
$src ="user/profil_bild/".$_FILES['img']['tmp_name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['tmp_name'];
 
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  } 
Da ist nochmal das move_uploaded_file.

Wie gesagt das originalbild wird ja hochgeladen, nur der Thumb nicht.

[EDIT]

Aber eines leuchtet mir grad ein, das mit dem src dürfte an der Stelle gar nicht gehen, da ja das Bild an der Stelle des Programmes noch gar nicht in dem Verzeichnis liegt. Aber wo hole ich mir das dann her?
__________________
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 21.09.2009, 10:49  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 3.891
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Mensch
Standard

Ähm, was tut move_uploaded_file() ?

Zitat:
move_uploaded_file -- Verschiebt eine upgeloadete Datei an einen neuen Ort
Und was tust du NACH move_uploaded_file() - du greifst auf eine Datei zurück, die bereits verschoben wurde (bzw. umbenannt). Versuchs mal mit $_FILES['img']['name'] anstatt mit $_FILES['img']['tmp_name']...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 21.09.2009, 10:55  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Ähm, was tut move_uploaded_file() ?



Und was tust du NACH move_uploaded_file() - du greifst auf eine Datei zurück, die bereits verschoben wurde (bzw. umbenannt). Versuchs mal mit $_FILES['img']['name'] anstatt mit $_FILES['img']['tmp_name']...
Das dachte ich ja Anfangs auch und habe das so gemacht.

So sieht der Code jetzt aus und sah er Anfangs auch aus.

PHP-Code:
//upload ausführen mit weiterleitung auf wunschdatei
  
move_uploaded_file($_FILES['img']['tmp_name'],"user/profil_bild/".$_FILES['img']['name']);
  
  
//prüfen ob das bild hochgeladen wurde und dann kleines bild kopieren
  
if(is_uploaded_file($_FILES['img']['name']))
  {
   
$bild $_FILES['img']['name'];
   
$src ="user/profil_bild/".$_FILES['img']['name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['name'];
    
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  } 
Es wird aber nur das original Bild in den Order geladen, nicht aber das Thumb. Auch in die DB wird Ordnungsgemäsß der Bildname geschrieben.
__________________
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 21.09.2009, 11:01  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 1.898
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

PHP-Code:
if(is_uploaded_file($_FILES['img']['name'])) {
   
$bild $_FILES['img']['name'];
   
$src ="user/profil_bild/".$_FILES['img']['name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['name'];
   
move_uploaded_file($_FILES['img']['tmp_name'],"user/profil_bild/".$_FILES['img']['name']); 
wär das so rum nicht logischer ?
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
Alt 21.09.2009, 11:05  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Nee so wird gar kein Bild erst hoch geladen, noch nicht mal das Original. Kann aber so meiner Meinung nach gar nicht hochgeladen werden. Die Prüfung muss dann mit !is_uploaded_file heisen. Aber auch das geht so nicht, das Thumb wird nicht erstellt.

PHP-Code:
//prüfen ob das bild hochgeladen wurde und dann kleines bild kopieren
  
if(!is_uploaded_file($_FILES['img']['name']))
  {
   
$bild $_FILES['img']['name'];
   
$src ="user/profil_bild/".$_FILES['img']['name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['name'];
 
   
//upload ausführen mit weiterleitung auf wunschdatei
   
move_uploaded_file($_FILES['img']['tmp_name'],"user/profil_bild/".$_FILES['img']['name']);
 
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  } 
__________________
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 21.09.2009, 11:06  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 3.891
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Menschlstegelitz ist ein sehr geschätzer Mensch
Standard

Die Reihenfolge deiner Abfrage ist auch nicht korrekt, prüfe erst ob die Datei hochgeladen wurde, danach verschiebst du sie und dann kannst du mit der verschobenen Datei arbeiten.

PHP-Code:
if (is_uploaded_file($_FILES['img']['tmp_name'])) {
  
move_uploaded_file($_FILES['img']['tmp_name'], "path/to/pictures/name.jpg");
  
// mach was mit der Datei...

__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 21.09.2009, 11:09  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.072
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Das ist mir nun auch aufgefallen, aber es geht trotzdem nicht.

PHP-Code:
//prüfen ob das bild hochgeladen wurde und dann kleines bild kopieren
  
if(!is_uploaded_file($_FILES['img']['name']))
  {
   
//upload ausführen mit weiterleitung auf wunschdatei
   
move_uploaded_file($_FILES['img']['tmp_name'],"user/profil_bild/".$_FILES['img']['name']);
   
   
$bild $_FILES['img']['name'];
   
$src ="user/profil_bild/".$_FILES['img']['name']."";
   
$thumb_order ="user/profil_bild";
   
$maximal ="140";
   
$thumb_name $_FILES['img']['name'];
   
   
thumbnail($src,$maximal,$thumb_order,$thumb_name);
  } 
Es ist ja nun aber eigentlich alles da um das Thumbnail zu erstellen und gleich beim Upload mit zu speichern.
__________________
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 21.09.2009, 11:14  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 1.898
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Warum macht die Aussage bei ihm Sinn und bei mir nicht? ^^

PHP-Code:
$thumb_order ="user/profil_bild"
fehlt wohl ein slash am ende.

grüße
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline  
 


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] foreach schleife beim erstellen einer image_map schlägt fehl litterauspirna PHP Tipps 2009 8 25.05.2009 13:04
[Erledigt] Problem: Neue Tabelle erstellen NaviCat Change Datenbanken 4 14.08.2008 14:58
Thumbnail mit genauer Größe erstellen Simon9990 PHP Tipps 2008 9 23.08.2007 05:22
XML mit PHP erstellen -> Problem mit Zeichensatz madSoul PHP Tipps 2007 11 23.03.2007 12:36
Problem beim erstellen einer HTML Mail... GELight PHP Tipps 2006 15 06.10.2006 00:27
Problem eine Abfrage zu erstellen FireFIghter Datenbanken 6 01.08.2006 08:39
Problem mit Bildupload Charly Shop Sui PHP Tipps 2006 2 14.07.2006 12:30
Problem beim erstellen eines Cookies PHP Tipps 2005-2 6 27.08.2005 11:18
thumbnail erstellen PHP Tipps 2005-2 0 05.08.2005 07:50
Thumbnail erstellen geht nicht Creativ PHP Tipps 2005-2 1 12.07.2005 21:22
Problem beim Erstellen von PNG PHP Tipps 2005 3 30.04.2005 13:40
Problem beim erstellen von pfd-Dateien Klaus PHP Tipps 2005 3 29.03.2005 10:13
thumbnail erstellen PHP Tipps 2005 13 15.03.2005 12:54
Thumbnail erstellen Creativ PHP Tipps 2004-2 1 29.12.2004 17:24
Problem: Bildupload und Größenänderung geht nur lokal PHP Tipps 2004 4 08.08.2004 18:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php bildupload breite höhe, php thumbnail erstellen, php thumb erstellen, php thumbnail upload, php upload thumbnail erstellen, thumbnails erstellen bei php upload, php bilder upload thumbnail, thumbnail erstellen php, php bildupload mit thumbnail, php bild kopieren und thumb erstellen, php png thumbnail erzeugen, bildausgabe foreach break, move_uploaded_file thumb generieren, php upload thumbnail, thumbnail erzeugen php, upload php mit thumbnail, bilder thumbnails erstellen, thumbs erstellen php, thumbnail erstellen, php thumbnails aus $files erstellen

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