- Ad -
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! Post your PHP questions here!

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.746
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.481
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.481
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.308
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

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

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