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 15-06-2009, 10:31
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard Foto wird nicht angelegt

Hallo ihr!

Ich stehe vor einem Rätsel: Ich habe ein Uploadskript geschrieben, damit ich Fotos auf meinen WebSpace stellen kann.
Allerdings will ich die Fotos in diesem Zusammenhang gleich auf 1280*960 verkleiner. Das Problem dabei ist, dass das Bild nicht angelegt wird und ich keine Ahnung habe woran das liegt. Denn komischerweise funktioniert das Script beim Erstellen von thumbnails.
Hier mein Script, an dem ich nicht mehr weiterkomme:

PHP-Code:
function foto_verkleinern($ID$name)
{     Echo 
"FahrzeugID - $ID, Bildname: $name<br> erfolgreich hochgeladen!<br><br>";
    
$namealt=$name;
    
$name=strtolower($name);    
  echo 
"<br>Name klein: $name";

  
  
// Fotos auf 1280*960 verkleinern
  
$image_file="../fotos/temp/$namealt"// in Temp ist Datei noch in Grossbuchstaben vorhanden
  
$dest_file="../fotos/$name";  // Datei neu mit kleinbuchstaben
  
echo "<br>Temp-Datei: $image_file";
  echo 
"<br>Neu-Datei: $dest_file";
  
  
$size=getimagesize($image_file);
  
$breite=$size[0];
  
$hoehe=$size[1];
  Echo 
"<hr>Breite: $breite Pixel, Höhe: $hoehe Pixel";
  
  
$image_big=imagecreatefromjpeg($image_file);
  
$image_small=imagecreatetruecolor(1280,960);
  
  
ImageCopyResampled($image_small,$image_big,0,0,0,0,1280,960,$breite,$hoehe);
  
imagejpeg($image_small,$dest_file,80);
  echo 
"<br>Foto auf 1280*960 verkleinert: $name";
  
  
  
  
// gleich ein Thumbnail erzeugen
  
$image_file="../fotos/$name";
  
$dest_file="../fotos/thumb/$name";
  
$size=getimagesize($image_file);
  
$breite=$size[0];
  
$hoehe=$size[1];
  
$image_big=imagecreatefromjpeg($image_file);
  
$image_small=imagecreatetruecolor(160,120);
  
ImageCopyResampled($image_small,$image_big,0,0,0,0,160,120,$breite,$hoehe);
  
imagejpeg($image_small,$dest_file,80);
  echo 
"<br>Thumbnail erzeugt";
  
  
//Temporäre Datei löschen
  
$temp="../fotos/temp/$namealt";
  
unlink($temp);

Habt ihr bitte einen Hinweis, den ich überseh?

Danke,
ayin
Mit Zitat antworten
  #2 (permalink)  
Alt 15-06-2009, 10:55
deedee
 Registrierter Benutzer
Links : Onlinestatus : deedee ist offline
Registriert seit: Jun 2009
Beiträge: 80
deedee befindet sich auf einem aufstrebenden Ast
Standard

mach mal am Anfang:
error_reporting(E_ALL|E_STRICT);
Du arbeitest da anscheinend mit einigen Dateien. Überall prüfen, ob PHP diese Dateien wirklich findet:
var_dump(file_exists(....));
Mit Zitat antworten
  #3 (permalink)  
Alt 15-06-2009, 11:17
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo!

Also ich habe jetzt Error_Reporting eingefügt, es werden aber keine Fehler oder Warnungen gemeldet.
Desweiteren habe ich überprüft ob die hochgeladene Datei exisitert und gefunden wird, auch das klappt.

Ich habe dann zwecks Debug hinter jeder weiterer Folge ein Echo angefügt ob der jeweilige Befehl ausgeführt wird, aber nach der Zeile

$image_small=imagecreatetruecolor(1280,960);

habe ich keine Bildschirmausgabe mehr und das Skript hört scheinbar auf.

JEtzt bin ich noch ratloser als vorher.

Geändert von ayin (15-06-2009 um 11:20 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 15-06-2009, 11:41
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mach doch or die('Fehler bla bla') mal hinten dran, dann weisst du wenigsten wo es hängt. Außerdem imagedestroy nicht vergessen sonst läuft dein Server voll.
Mit Zitat antworten
  #5 (permalink)  
Alt 15-06-2009, 12:29
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

ini_set('display_errors', 1); hinzufügen, sonst nützt dir das error_reporting() anscheinend nichts.
Für die Fehlerursache tippe ich mal aufs memory_limit.
Mit Zitat antworten
  #6 (permalink)  
Alt 15-06-2009, 13:05
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, es ist das memory_limit. Mit kleineren Dateien hat es geklappt.
Tja, da es nur ein gehosteter Webspace ist muss ich halt meine Fotos vorher verkleinern.

Danke für eure Hilfe!
Mit Zitat antworten
  #7 (permalink)  
Alt 23-06-2009, 16:42
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, wenn ich nochmal störe. Aber da ich das Problem mit GD nicht hinkriege wollte ich es mal mit ImageMagick lösen, aber da passiert noch weniger.

Ich habe ein Verzeichnis Test angelegt. Darin das Script und ein Probefoto. Das wollte ich verkleinern aber beim Script passiert rein gar nichts, auch keine Fehlermeldung

PHP-Code:
<?php

error_reporting
(E_ALL|E_STRICT);
ini_set('display_errors'1);



  
$image_file="testbild.jpg";
  list(
$width$height) = getimagesize($image_file);
  echo 
"Breite: $width, Höhe: $height";
  
$image->new Imagick ('testbild.jpg');
  
$image->resizeImage(800,600);
  
$image->writeImage('scaled_testbild.jpg');
  
$image->destroy(); 
?>
ImageMagick ist aber auf meinem Webhost installiert, siehe Anhang:


Was mach ich denn nun schon wieder falsch?
Miniaturansicht angehängter Grafiken
Foto wird nicht angelegt-imagick.jpg  

Geändert von ayin (23-06-2009 um 16:47 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 23-06-2009, 20:10
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

Wenigstens das echo sollte doch irgendwas ausgeben. Bist du dir sicher, dass du diese Datei wirklich aufrufst und auch dieser Code drinsteht?
Mit Zitat antworten
  #9 (permalink)  
Alt 23-06-2009, 20:27
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

PHP-Code:
$image->new Imagick ('testbild.jpg'); 
Du nutzt offenbar eine Klasse. Ist die auch eingebunden? Sorry, hat es hier alles schoin gegeben .

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #10 (permalink)  
Alt 23-06-2009, 22:42
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hm, nein, ich habe gar nichts eingebunden. Ich wüsste auch gar nicht wie?
Ich habe einfach lange gegoogelt und habe sehr oft einen Code wie den angeführten gefunden. Dann hab ich damit experimentiert, aber von Klasse einbinden hab ich nichts gelesen.
Wie geht denn das?
Und entschuldigung für die dummen Fragen.


EDIT: Nach langem Suchen im Internet habe ich die Lösung gefunden, ich musste einfach nur rudimentärer werden:

PHP-Code:
<?php

error_reporting
(E_ALL|E_STRICT);
ini_set('display_errors'1);

$thumb = new Imagick();
$thumb->readImage('testbild.jpg');

$height=$thumb->getImageHeight();
$width=$thumb->getImageWidth();
if (
$width 800$thumb->scaleImage(800,600,true);
if (
$height 600)$thumb->scaleImage(800,600,true); 
$thumb->writeImage('testbild_scaled.jpg');

echo 
"<img src=\"testbild_scaled.jpg\">";

$thumb->clear();
$thumb->destroy();
 
?>

Geändert von ayin (24-06-2009 um 12:12 Uhr) Grund: Lösung gefunden
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
Cookie wird erst nach Seitenreload angelegt. Soll aber wenn Seite geöffnet wird! BananaJo PHP Developer Forum 18 14-06-2009 15:05
Neues Verzeichnis angelegt - Zugriffrechte stimmen nicht Mondmotte PHP Developer Forum 4 21-01-2009 21:51
Session fehler wird angezeigt, obwohl die Session angelegt wird... spam2008 Archiv / Trash 39 14-03-2008 00:32
session wird erst nach reload angelegt?! Typomaniac PHP Developer Forum 2 05-07-2004 15:38
Tabelle wird nicht angelegt! (errno: 140) HansMuenchen SQL / Datenbanken 7 16-11-2003 20:36

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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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