php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-12-2010, 12:46
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard Und wieder ein Bilder-Thread

Hallo zusammen,

ich habe ein Problem mit meinem Bilderscript.
Der Upload eines Bildes funktioniert und das Bild wird auch korrekt abgelegt. Allerdings erstellt er mir einfach kein Thumb davon.
Leider sehe ich den Wald vor lauter Bäumen nicht mehr, vielleicht jemand von euch?

PHP-Code:
if (is_uploaded_file($_FILES["product_imageurl"]["tmp_name"]))
                {
                        if (
strrpos($_FILES["product_imageurl"]["type"],"image/") === false)
                        {
                                
$inform "Warnung: Falsche Bilddatei! Daten wurden aktualsiert, jedoch nicht der Link!";
                        }else
                        {
                                
$newpath "upload/image/".time(). substr($_FILES["product_imageurl"]["name"],strrpos($_FILES["product_imageurl"]["name"],"."));

                                echo 
$newpath;  //Ausgabe  /upload/image/1291908266.jpg   <-- funktioniert
                                

                                 
$imgfile $newpath;


                                    
// Erstellt ein thumbnail eines Bildes
                                    // Ordner unter $speicherordner benötigt ggf. Schreibrechte CHMOD(777)

                                    // Parameter:
                                    // $imgfile: Pfad zur Bilddatei
                                    // $speicherordner: Ordner indem die Thumbnails gespeichert werden sollen
                                    // $filenameOnly: Soll nur der Dateiname als Name für Thumbnail verwendet werden,
                                    // ansonsten inkl. Pfad
                                    
function thumbnail($imgfile$speicherordner="upload/image/thumb/"$filenameOnly=true)
                                       {
                                       
//Max. Größe des Thumbnail (Höhe und Breite)
                                       
$thumbsize 100;

                                       
//Dateiname erzeugen
                                       
$filename basename($imgfile);

                                       
//Fügt den Pfad zur Datei dem Dateinamen hinzu
                                       //Aus ordner/bilder/bild1.jpg wird dann ordner_bilder_bild1.jpg
                                       
if(!$filenameOnly)
                                          {
                                          
$replace = array("/","\\",".");
                                          
$filename str_replace($replace,"_",dirname($imgfile))."_".$filename;
                                          }

                                       
//Schreibarbeit sparen
                                       
$ordner $speicherordner;

                                       
//Speicherordner vorhanden
                                       
if(!is_dir($ordner))
                                          return 
false;

                                       
//Wenn Datei schon vorhanden, kein Thumbnail erstellen
                                       
if(file_exists($ordner.$filename))
                                          return 
$ordner.$filename;

                                       
//Ausgangsdatei vorhanden? Wenn nicht, false zurückgeben
                                       
if(!file_exists($imgfile))
                                          return 
false;



                                       
//Infos über das Bild
                                       
$endung strrchr($imgfile,".");

                                       list(
$width$height) = getimagesize($imgfile);
                                       
$imgratio=$width/$height;

                                       
//Ist das Bild höher als breit?
                                       
if($imgratio>1)
                                          {
                                          
$newwidth $thumbsize;
                                          
$newheight $thumbsize/$imgratio;
                                          }
                                       else
                                          {
                                          
$newheight $thumbsize;
                                          
$newwidth $thumbsize*$imgratio;
                                          }

                                       
//Bild erstellen
                                       //Achtung: imagecreatetruecolor funktioniert nur bei bestimmten GD Versionen
                                       //Falls ein Fehler auftritt, imagecreate nutzen
                                       
if(function_exists("imagecreatetruecolor"))
                                         
$thumb imagecreatetruecolor($newwidth,$newheight);
                                       else
                                          
$thumb imagecreate ($newwidth,$newheight);

                                       if(
$endung == ".jpg")
                                          {
                                          
imageJPEG($thumb,$ordner."temp.jpg");
                                          
$thumb imagecreatefromjpeg($ordner."temp.jpg");

                                          
$source imagecreatefromjpeg($imgfile);
                                          }
                                       else if(
$endung == ".gif")
                                          {
                                          
imageGIF($thumb,$ordner."temp.gif");
                                          
$thumb imagecreatefromgif($ordner."temp.gif");

                                          
$source imagecreatefromgif($imgfile);
                                          }

                                       
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);

                                       
//Bild speichern
                                       
if($endung == ".png")
                                          
imagepng($thumb,$ordner.$filename);
                                       else if(
$endung == ".gif")
                                          
imagegif($thumb,$ordner.$filename);
                                       else
                                          
imagejpeg($thumb,$ordner.$filename,100);


                                       
//Speicherplatz wieder freigeben
                                       
ImageDestroy($thumb);
                                       
ImageDestroy($source);


                                       
//Pfad zu dem Bild zurückgeben
                                       
return $ordner.$filename;
                                       }




                                if (
move_uploaded_file($_FILES["product_imageurl"]["tmp_name"], $newpath))
                                {
                                        
$inform "";
                                        
$product_imageurl $newpath;
                                }else
                                {
                                        
$inform "Bild konnte nicht verschoben werden!!!";
                                }
                        }
                }else
                        
$product_imageurl = isset($_POST['product_imageurl_text'])?$_POST['product_imageurl_text']: $product_imageurl
Vielen Dank für die Hilfe
Jörn
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #2 (permalink)  
Alt 14-12-2010, 13:21
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Du solltest deinen Code besser formatieren. Man blickt ja kaum noch durch!

Zum Erstellen eines Thumbnails hast du zwar eine Funktion, rufst sie aber nicht auf. Dann wird natürlich auch kein Thumb erstellt. ;-)
Mit Zitat antworten
  #3 (permalink)  
Alt 14-12-2010, 13:22
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

1. bissel breit der quelltext.
2. wird die function thumbnail überhaupt aufgerufen?
OffTopic:

ah mist 1ne minute zulang gezögert

__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #4 (permalink)  
Alt 14-12-2010, 13:55
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

ja, die function wird aufgerufen.
Vielleicht hat ja jemand auch ne andere Lösung, die ich einbauen könnte.
Wie gesagt, das große Bild wird im korrekten Verzeichnis in der richtigen Größe gespeichert, nur eben kein Thumb.

Gruß
Jörn
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #5 (permalink)  
Alt 14-12-2010, 14:23
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wo wird sie denn aufgerufen, die Funktion "thumbnail"? Im bisher gezeigten Code jedenfalls überhaupt nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 14-12-2010, 14:36
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard Funktion

Hi,

ich habe nur die Funktion direkt in den Quelltext kopiert, damit man alles zusammen hat.
Normal sieht es so aus:

PHP-Code:
$newpath "upload/image/".time(). substr($_FILES["product_imageurl"]["name"],strrpos($_FILES["product_imageurl"]["name"],"."));

                                function 
thumbnail();

                                if (
move_uploaded_file($_FILES["product_imageurl"]["tmp_name"], $newpath))
                                {
                                        
$inform "";
                                        
$product_imageurl $newpath;
                                }else
                                {
                                        
$inform "Bild konnte nicht verschoben werden!!!";
                                } 
Gruß
Jörn
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #7 (permalink)  
Alt 14-12-2010, 15:01
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Das hat doch damit nichts zu tun, du rufst sie einfach nicht auf, das ist das Problem. Der aktuelle Code erzeugt einen Parserfehler.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #8 (permalink)  
Alt 14-12-2010, 15:22
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Kurze Nachhilfe fällig. So definiert man eine Funktion:
PHP-Code:
function name($parameter, ...) {
    
// code

Jetzt existiert sie, wird aber nicht ausgeführt und bewirkt daher erstmal gar nichts. Um sie auszuführen, muss man sie aufrufen. Das geht so:
PHP-Code:
name(...); 
So einen Aufruf gibt es bei dir nicht! Deine Funktion wird also nicht ausgeführt und deshalb auch kein Thumbnail erstellt.

Ich hoffe wir haben es jetzt langsam.
Mit Zitat antworten
  #9 (permalink)  
Alt 14-12-2010, 15:42
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, hab ich gemacht

PHP-Code:
$newpath "upload/image/".time(). substr($_FILES["product_imageurl"]["name"],strrpos($_FILES["product_imageurl"]["name"],"."));

      
$imgfile $newpath;

      
thumbnail (); 
Muss ich aus der Funktion einen Wert zurückgeben?
Eigentlich ja nicht, denn das Thumbnail sollte ja on the fly erstellt werden und die Funktion braucht keinen Rückgabewert.
__________________
Gruß
Jörn

http://www.restaurant-berater.de

Geändert von pjoern (15-12-2010 um 10:06 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 14-12-2010, 15:44
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Rückgabe muss nicht sein, aber die Funktion erwartet mindestens einen Parameter. Du solltest dringend dein error-reporting schärfer einstellen. Lies unsere Regeln, da steht wie es geht!
Mit Zitat antworten
  #11 (permalink)  
Alt 14-12-2010, 16:06
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe mein error reporting einegschaltet mit

error_reporting(E_ALL);
ini_set('display_errors', 1);

Er bringt mir aber keinen Fehler mehr.
Leider erstellt er auch kein Thumb und ich weiss nicht, wie ich die function auf ihre Funktionalität testen kann.
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #12 (permalink)  
Alt 14-12-2010, 16:09
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich übergebe nun folgendes:

PHP-Code:
$newpath "upload/image/".time(). substr($_FILES["product_imageurl"]["name"],strrpos($_FILES["product_imageurl"]["name"],"."));

     
$imgfile $newpath;

     
thumbnail ($imgfile);

     echo 
$imgfile
Aber in der Variablen $imgfile steht immer noch der alte Pfad drin, den ich vorher aus $newpath bekommen habe, also in dem Fall upload/image/1292335543.gif

Allerdings gibt es keine Fehlermeldung sonst...
__________________
Gruß
Jörn

http://www.restaurant-berater.de

Geändert von pjoern (15-12-2010 um 10:06 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 14-12-2010, 16:39
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

PHP-Code:
$imgfile thumbnail($imgfile);
var_dump($imgfile); 
Mit Zitat antworten
  #14 (permalink)  
Alt 14-12-2010, 16:53
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard

liefert mir ein bool(false) zurück
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #15 (permalink)  
Alt 14-12-2010, 18:01
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Dann schauen wir jetzt in die Funktion und suchen die Stelle(n) wo false zurück gegeben wird. Was steht davor? Wann passiert das?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upgeloadete Bilder wieder löschen ?? IceT PHP Developer Forum 3 27-10-2004 17:29
[SQL allgemein] Bilder in DB speichern und wieder anzeigen pmy180494 SQL / Datenbanken 15 12-12-2003 10:07
Bilder speichern in DB und wieder ansehen scripter84 PHP Developer Forum 17 08-07-2003 16:35
Bilder wieder anzeigen lassen ! ebnet PHP Developer Forum 2 17-01-2003 16:49
Mal wieder ne Bilder Frage mastermack SQL / Datenbanken 1 04-03-2002 11:49

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:24 Uhr.