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 19-12-2008, 20:01
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard Bild verkleinern

Hallo miteinander

Ich habe ein sehr komisches Problem;
Ich mache ein Bildupload und erstelle ein Thumb. Soweit funktioiert alles.
Nun habe ich ein zusätzliches Upload erstellt, welches das Bild aus einem Zip entpackt und in ein Verzeichnis auf den Server legt. Das funzt auch!
Nun will ich ein Thum aus diesem Bild erstelle mittels der selben Funktion wie beim Bildupload.

Leider funzt das nicht immer, bei gewissen Bilder (kleine und leichte) wird das Thum nicht erstellt!!! Weiss hier jemand einen Tipp, ich bin mit meinem Latein am Ende.

Hier ie Uploadfunktion welche beim direkten Bildupload einwandfrei und immer funzt.
PHP-Code:
function make_thumb($img_src$img_width$img_height$des_src$endung$quali '96')

    
$im imagecreatefromjpeg($img_src); 
    list(
$src_width$src_height) = getimagesize($img_src); 
    if ((
$src_width $src_height) or ($src_width $src_height))
    { 
        if(
$src_width $src_height)
         { 
        
$new_image_width $img_width
        
$new_image_height $img_width / ($src_width $src_height ); 
        } 
        if(
$src_width $src_height)
         { 
        
$new_image_height $img_height
        
$new_image_width $src_width $src_height $img_height 
        } 
    }
    else
    { 
        
$new_image_width '75'
        
$new_image_height '75' / ($src_width $src_height ); 
    }
$new_image imagecreatetruecolor($new_image_width$new_image_height); 
imagecopyresampled($new_image$im0000$new_image_width,$new_image_height$src_width$src_height);
imagejpeg($new_image$des_src$quali); 
imagedestroy($img_src);
}

            @
make_thumb("$img_scr""$bildtmform""$bildtmform""$image_upload_path_tn/$bildfile_tn"99); 
Mit Zitat antworten
  #2 (permalink)  
Alt 19-12-2008, 20:40
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

error_reporting hochdrehen und mach das @ vor dem funktionsaufruf weg. das hast du da doch bestimmt net ohne grund hingeschrieben
__________________
it's not a bug,
it's a feature!
Mit Zitat antworten
  #3 (permalink)  
Alt 19-12-2008, 20:42
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

vielleicht solltest du mal hier die fehlerausgabe nicht unterdrücken:
PHP-Code:
@make_thumb("$img_scr""$bildtmform""$bildtmform""$image_upload_path_tn/$bildfile_tn"99); 
dann erfährst du auch ggf., wo das problem liegt. außerdem ist diese schreibweise ziemlicher tinnef. das hier tuts auch:
PHP-Code:
make_thumb($img_scr$bildtmform$bildtmform$image_upload_path_tn.'/'.$bildfile_tn99); 
allerdings scheints du mit deinen parameter ein wenig durcheinander gekommen zu sein. das hier sind 6
PHP-Code:
function make_thumb($img_src$img_width$img_height$des_src$endung$quali '96'
aber hier rufst du nur 5 auf:
PHP-Code:
@make_thumb("$img_scr""$bildtmform""$bildtmform""$image_upload_path_tn/$bildfile_tn"99); 
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #4 (permalink)  
Alt 20-12-2008, 01:18
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Diese Fehlermeldung kommt:

Zitat:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /srv/www/webxxx/html/templ/sys_bild/bild_funktion.inc.php on line 38
Zitat:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'http://www.url.ch/upload/bild 08 (45).jpg' is not a valid JPEG file in /srv/www/webxxx/html/templ/sys_bild/bild_funktion.inc.php on line 38
EDIT:
by TobiaZ: Warum benutzt man PHP-Code Tags für Zitate?

Geändert von TobiaZ (29-12-2008 um 18:09 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 20-12-2008, 12:31
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

könnte was mit bildern zu tun haben die leerzeichen enthalten
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #6 (permalink)  
Alt 20-12-2008, 14:38
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Leerzeichen im Namen habe ich bereits alle zu test zwecken entfernt. Und zudem funktionier das selbe Bild beim einzel Upload

Kann mir denn niemand helfen?

Geändert von sepp (29-12-2008 um 18:03 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 29-12-2008, 18:04
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Leerzeichen im Namen habe ich bereits alle zu test zwecken entfernt. Und zudem funktionier das selbe Bild beim einzel Upload

Kann mir denn niemand helfen?
Mit Zitat antworten
  #8 (permalink)  
Alt 29-12-2008, 18:08
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Bist du sicher, dass imagecreatefrom mit entfernten Dateien arbeiten kann?

PS: Bitte in Zukunft das Drängeln unterlassen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!

Geändert von TobiaZ (29-12-2008 um 18:10 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 29-12-2008, 18:41
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Nein, das bin ich nicht, was für eine Alternative zu imagecreateform gibt es denn?

Ja, sorry ich unterlasse das Drängeln in Zukunft. Aber ich bin am verzweifeln!
Mit Zitat antworten
  #10 (permalink)  
Alt 29-12-2008, 18:55
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Nein, das bin ich nicht,
Warum überpüfst du das nicht, sondern programmierst ins blaue hinein?

Zitat:
was für eine Alternative zu imagecreateform gibt es denn?
Alternativen gibt es viele. Wenn du den Rest des Codes beibehalten willst, könntest du mal in die User Contributed Notes gucken, da steht was man tun kann, um trotzdem noch bei den GD-Funktionen zu bleiben.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 30-12-2008, 12:03
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Beim ersten Überfliegen ist mir folgendes aufgefallen:

Zitat:
PHP-Code:
function make_thumb($img_src$img_width$img_height$des_src$endung$quali '96')

    
$im imagecreatefromjpeg($img_src); 
... 
imagedestroy($img_src); 
imagedestroy() erwartet eine Image-Resource als Parameter. Was passiert, wenn du einen Dateinamen übergibst, hab ich noch nicht ausprobiert, aber mindestens eine Warnung sollte PHP schon ausspucken.

Um deinem eigentlichen Problem auf den Grund zu gehen, müsstest du genauer feststellen, um welche Dateien oder Dateitypen es sich handelt, bei denen der Fehler auftritt. Ich sehe bspw. dass du zwar Höhe und Breite mit getimagesize() abfragst, aber nicht prüfst, ob es sich überhaupt um eine JPEG-Datei handelt. imagecreatefromjpeg() kann aber nur diese lesen. Auch ist es keine gute Idee, den Rückgabewert von getimagesize() mit list () abzufangen, denn in dem Fall kannst du den Rückgabewert FALSE, der bei Fehler auftritt, nicht erkennen. Außerdem gibts dann wieder 'ne Warnung (bei eingeschaltetem error_reporting(E_ALL)). Besser ist das so:
PHP-Code:
$im_info getImageSize();
if (
FALSE === $im_info) {
  
// deine Fehlerbehandlung oder
  
die('could not detect image type!');

Wenn du von anderen Servern Grafik-Dateien zu Thumbnails machen willst, musst du dir diese auch erst holen. Das geht am einfachsten mit file_get_contents(). Danach kannst du die Grafik mit imageCreateFromString() einlesen. Dieser Trick setzt aber voraus, dass file_get_contents() von entfernten Resourcen Dateien lesen kann. Dafür benötigt es aktivierte "URL-fopen-wrappers". Das gleiche könnte für imageCreateFromJpeg() gelten -- so genau weiß ich das jetzt nicht. Aber der Umweg über file_get_contents() hat den Vorteil, dass eine aussagekräftigere Fehlermeldung erscheint, falls das URL-Wrapping deaktiviert ist.

Falls das Laden über URLs nicht geht, brauchst du Zugriff auf die PHP.ini, dort kann man das einstellen. Es gibt zwar noch andere Optionen (curl, fsockopen und Co., ...), aber die sind meistens auch nicht aktiviert oder für deinen Wissensstand wahrscheinlich noch etwas zu hoch.

Leerzeichen in Pfadangaben hingegen stellen heut zu Tage weder eine Seltenheit noch ein Problem dar. Allerdings ist "http://www.url.ch/upload/bild 08 (45).jpg" keine valide URL, denn da müssten statt der Leerzeichen " " eben "+" oder "%20" stehen. urlencode() ist dein Freund. ;-)

Was aber ein Problem darstellt, ist deine Pfadbastelei: "$image_upload_path_tn/$bildfile_tn"
Lass dir vor dem Aufruf deiner Funktion die beiden Bestandteile zur Probe ausgeben. Außerdem kannst du mit file_exists("$image_upload_path_tn/$bildfile_tn") überprüfen, ob die Datei überhaupt existiert. Und schließlich solltest du immer(!) sicherstellen, dass beide keinen "Unsinn" enthalten, besonders, wenn sie aus Benutzereingaben erstellt wurden. Sonst überschreibt imagejpeg() womöglich Dateien, die du gerne behalten hättest.

Geändert von fireweasel (30-12-2008 um 12:08 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


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

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 07:04 Uhr.