Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-12-2007, 14:30   #1 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
Bildtyp auslese, Bild skalieren, Bild speichern

Hey FF-Gemeinde, habe ein Problem mit meinem PHp-Skript:

PHP-Code:
<?php

//Bild Daten initialisieren

$servername $_FILES['Filedata']['tmp_name'];
$rechnername $_FILES['Filedata']['name'];
$bildtyp $_FILES['Filedata']['type'];

//das Original-Bild hochladen

move_uploaded_file($servername"./originale/".$rechnername);

//Ordner-Rechte vergeben auf Server
chmod("./originale/".$rechnername0777);

//Bild skalieren und Speichern für Thumbnail
if ($bildtyp ".jpg") {
$imghandle imagecreatefromjpeg("./originale/".$rechnername);
}
else if (
$bildtyp ".gif") {
$imghandle imagecreatefromgif("./originale/".$rechnername);
}
$preferredWidth 100;
$x imagesx($imghandle);
$y imagesy($imghandle);
if (
$x $y) {
  
$factor $preferredWidth $x;
  
$newy $factor $y;
  
$thumb imagecreatetruecolor($preferredWidth$newy);
  
imagecopyresized($thumb$imghandle0000$preferredWidth$newy$x$y);
  
imagejpeg($thumb,"./thumbnails/".$rechnername);
} else {
  
$factor $preferredWidth $y;
  
$newy $factor $x;
  
$thumb imagecreatetruecolor($newy$preferredWidth);
  
imagecopyresized($thumb$imghandle0000$newy$preferredWidth$x$y);
if (
$bildtyp ".jpg") {
  
imagejpeg($thumb,"./thumbnails/".$rechnername);
  }
else if (
$bildtyp ".gif") {
  
imagegif($thumb,"./thumbnails/".$rechnername);
  }
}
Die Bild-Daten werden durch die FILES Variable ins PHP geschickt. Ich verstehe nur nicht, wieso an den Abfragen

PHP-Code:
if ($bildtyp ".jpg") {
$imghandle imagecreatefromjpeg("./originale/".$rechnername);
}
else if (
$bildtyp ".gif") {
$imghandle imagecreatefromgif("./originale/".$rechnername);

und

PHP-Code:
if ($bildtyp ".jpg") {
  
imagejpeg($thumb,"./thumbnails/".$rechnername);
  }
else if (
$bildtyp ".gif") {
  
imagegif($thumb,"./thumbnails/".$rechnername);
  } 
falsch ist, denn vorher hat das Skript funktioniert. Ich möchte, dass je nachdem ob das Bild .gif oder .jpg ist, der entsprechende PHP Befehl ausgeführt wird. Aber wenn ich das in dieser Konstellation versuche wird kein Thumbnail in den entsprechenden Ordner kopiert. Wie gesagt ohne, die beiden Verzweigungen funktioniert es.
Danke für die Hilfe!
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)
McMannus ist offline   Mit Zitat antworten
Alt 03-12-2007, 14:40   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
1.
Schon mal mitbekommen, dass man Vergleiche mit '==' und nicht mit '=' anstellt..?

2.
Lesen: http://de3.php.net/manual/de/features.file-upload.php
In $bildtyp wird also nicht einfach '.jpg' oder '.gif' drinstehen.
Besser wär's eigentlich auch, den Bildtyp per getImageSize() zu ermitteln...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 03-12-2007, 16:01   #3 (permalink)
hilft gerne...
 
Registriert seit: Feb 2007
Ort: Carlsberg
Beiträge: 416
Danke sonar für die Erinnerung , aber ich bins gewöhnt mit Delphi zu programmieren, und da ist der Vergleich nur mit einem =. Habe aus deinen Tipps das ganze Mal in ne Funktion gepackt und siehe da, es funktioniert
Danke nochmal!
Hier die Funktion falls sie jemand bei Gelegenheit brauchen kann:

PHP-Code:
//parameter
//$bild : Der Ausganspfad des Bildes (quasi das Original)
//$skaliergroesse : Länge bzw. Höhe (je nachdem was größer ist) der Kopie 
//$speicherort : Pfad zur Speicherung der Kopie (Name erforderlich)

function skalieren($bild,$skaliergroesse,$speicherort) {
  
$bilddaten getimagesize($bild);
  
$breite $bilddaten[0];
  
$hoehe $bilddaten[1];
  
$typ $bilddaten[2];
  switch (
$typ) {
    case 
1:
      
$imghandle imagecreatefromgif($bild);
      break;
    case 
2:
      
$imghandle imagecreatefromjpeg($bild);
      break;
    case 
3:
      
$imghandle imagecreatefrompng($bild);
      break;
  }
  if (
$breite $hoehe) {
    
$skalierfaktor $skaliergroesse/$breite;
    
$neuehoehe $skalierfaktor $hoehe;
    
$neuesbild imagecreatetruecolor($skaliergroesse,$neuehoehe);
    
imagecopyresized($neuesbild,$imghandle,0,0,0,0,$skaliergroesse,$neuehoehe,$breite,$hoehe);
    switch (
$typ) {
      case 
1:
        
imagejpeg($neuesbild,$speicherort);
        break;
      case 
2:
        
imagegif($neuesbild,$speicherort);
        break;
      case 
3:
        
imagepng($neuesbild,$speicherort);
        break;
    }
  }
  else {
    
$skalierfaktor $skaliergroesse/$hoehe;
    
$neuebreite $skalierfaktor $breite;
    
$neuesbild imagecreatetruecolor($neuebreite,$skaliergroesse);
    
imagecopyresized($neuesbild,$imghandle,0,0,0,0,$neuebreite,$skaliergroesse,$breite,$hoehe);
    switch (
$typ) {
      case 
1:
        
imagejpeg($neuesbild,$speicherort);
        break;
      case 
2:
        
imagegif($neuesbild,$speicherort);
        break;
      case 
3:
        
imagepng($neuesbild,$speicherort);
        break;
    }
  }

Sieht doch schon gleich übersichtlicher aus oder ?
__________________
MfG Jan

Meine 2 besten Freunde: Flash-Hilfe und die Foren-Suche =)

Geändert von McMannus (03-12-2007 um 16:02 Uhr)
McMannus ist offline   Mit Zitat antworten
Alt 04-12-2007, 21:18   #4 (permalink)
exestiert hier nicht
 
Registriert seit: Jun 2002
Ort: Osnabrück
Beiträge: 1.728
Zitat:
...
Sieht doch schon gleich übersichtlicher aus oder ?
Fals du auf diese Frage eine Antwort erwartest, sie lautet Ja
__________________
<? if(!$success){ $try++; } ?>
~Es ist so grausam, dass der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~

Werbung:
- Ajax File Manager ( KFM - Kae's File Manager )
Funkey ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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 sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele