SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 22.03.2006, 19:52:04
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 35
Beiträge: 1.476
AW: Thumbnails

dateiauswahlfelder?

<input type="file" name="meinname">
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs
Mit Zitat antworten
  #12  
Alt 22.03.2006, 20:23:29
N'Koto Zinde
Guest
 
Beiträge: n/a
AW: Thumbnails

@opendix

nein dateiauswahlfelder kann ich schon herstellen. auch kann ich einzelne dateien hochladen, nur wie lade ich jetzt die vielen dateien auf einmal hoch, die ich zuvor in einzelnen auswahlfeldern ausgewählt habe (so wie es Giz sagte)

@Giz

Hab dein Script jetzt ausprobiert, ist leider nicht das was ich mir vorstelle (zudem funktioniert es nicht). Dafür hab ich aber die erste funktion etwas modifiziert sodass sie funktioniert und das macht was was ich will (nämlich von einem bild eine kleinere version in einem anderen bild erstellen und als datei speichern.) nur geht irgendwo die farbe verloren. das original ist farbig, das mit der funktion erstelle thumbnail war dann aber schwarz weiß.

Kann mir da noch jemand helfen? Dann wäre ich zunächst mal zufrieden gestellt.
Danke schonmal

Gruß N'Koto
Mit Zitat antworten
  #13  
Alt 22.03.2006, 21:16:46
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 35
Beiträge: 1.476
AW: Thumbnails

ach so... hmm...

also das mit den mehreren uploads...

du hast ja bei einem upload dann so ein array:
$_FILES['name']['...']

wenn du nun einfach mehrere solche file-eingabefelder hast, so kannst du ja einfach über den namen des ersten elements (oder wiedas auch immer heist) darauf zugreifen... sprich so:

$_FILES['name1']['...']
$_FILES['name2']['...']
$_FILES['name3']['...']
$_FILES['name4']['...']
...

hab da snoch nie gemacht... erscheint mir aber logisch...

dann habe ich hier noch eine klasse zum erstellen von thumbnails ausgegraben:
PHP-Code:
/**
 * Thumbnail
 * 
 *
 * @package    OpendixCMS
 * @author     Stefan Schöb <opendix@gmail.com>
 * @copyright  2006-2009 Stefan Schöb
 * @version    1.0
 */

/**
 * Klasse zum erstellen von Thumbnails
 * 
 * @author Stefan Schöb
 * @package OpendixCMS
 * @version 1.0
 * @copyright Copyright &copy; 2006, Stefan Schöb
 * @since 1.0     
 */
class mythumbnail
{
    
//Veränderbare Variabeln
    
private $pfadIn;                        //Ordner in dem die Fiels liegen
    
private $pfadOut;                        //Ordner in dem die neuen Files abgelegt werden
    
private $maxHigh        100;            //Maximale Bildhöhe des Thumbs
    
private $maxWidth        100;            //Maximale Bildbreite des Thumbs
    
private $delOldfile     true;            //Altes File aus dem $pfadIn-Ordner löschen
    
private $copyOldToOut    true;            //Altes bild in den $pfadout-Ordner kopieren
    
private $rename         true;            //Bilder umbenennen in den angegebenen filenamen oder zufallsname
    
private $prefix         "thumb_";        //Prefix für die thumbnails
    
private $filename;                        //Filename den man zuweisen kann
    
private $randomname        true;            //Zufallsname verwenden (ansonsten $filename)
    
private $randomlenght     15;            //Länge der Zufallsnamen
    
private $wzeichen         false;
    private 
$wzeichenbild     "logo/logo.gif";
    private 
$wzeichenort     "RND";            //"TL"     (oben links) 
                                                //"TM"     (oben mitte)  
                                                //"TR"     (oben rechts)
                                                //"CL"    (mitte links)
                                                //"C"      (mitte mitte)
                                                //"CR"  (mitte rechts)
                                                //"BL"     (unten Links)
                                                //"BM"     (Unten mitte)
                                                //"BR"     (unten rechts)
                                                //"RND" (Zufallsposition der obigen)

    //Interne Variabeln
    
private $file;
    private 
$neueHoehe;
    private 
$neueBreite;
    private 
$pictureInfo;
    private 
$newfilename;

    
/**
     * Konstruktor
     *
     * @param string $file
     * @return boolean 
     */
    
function __construct()
    {
        include_once(
'class.wasserzeichen.php');
    }

    
/**
     * Funktion die von ausen aufgerufen werden kann um ein einzelnes Bild zu bearbeiten
     *
     * @param string $name
     */
    
function doBild($name "")
    {
        if(
$name != '')
        {
            
$this -> setfile($name);
        }
        
$this-> pictureInfo getimagesize($this -> pfadIn $this -> file);
        
$this -> calcsize();
        
$this -> defineFileName();
        
$this -> createthumb();

        if(
$this -> copyOldToOut)
        {
            
chmod($this -> pfadOut0777);
            if(
$this -> wzeichen)
            {
                
$this -> addWasserzeichen($this -> pfadIn $this -> file);
            }
            
copy($this -> pfadIn $this -> file $this -> pfadOut $this -> newfilename $this -> getEndung());
        }
        if(
$this -> delOldfile)
        {
            
unlink($this -> pfadIn $this -> file);
        }
        return 
true;
    }

    
/**
     * Funktion die von aussen aufgerufen werden kann um ein verzeichnis zu durchlaufen
     *
     * @param string $name
     * @return array mit allen abgearbeiteten dateien
     */
    
function doOrdner($name)
    {
        
$this -> pfadIn $name;
        
$files = array();
        
$files $this-> scandir();
        for(
$i=0$i<count($files); $i++)
        {
            if(
$this -> doBild($files[$i]))
            {
                
$return[$i]['bild_g'] = $this -> newfilename $this -> getEndung();
                
$return[$i]['bild_k'] = $this -> prefix $this -> newfilename $this -> getEndung();
            }
            
        }
        return 
$return;
    }

    
/**
     * Funktion welche die Dateiendung der momentan geladenen Datei zurückgibt
     *
     */
    
private function getEndung()
    {
        
$spaltung explode("."$this-> file);
        return 
"." $spaltung[count($spaltung)-1];
    }

    
/**
     * Funktion die dem als Parameter übergebenen Bild ein Wasserzeichen anfügt
     *
     */
    
private function addWasserzeichen($datei)
    {
        
// Instantiate phpWatermark
        // The only parameter currently required is the name
        // of the image, which should get marked
        
$wm = new watermark($this -> pfadIn $this-> file);

        
// Optionally specify the position of
        // the watermark on the image
        
$wm->setPosition($this -> wzeichenort);

        
// Add a watermark containing the string
        // "phpWatermark" to the image specified above
        
$wm->addWatermark($this -> wzeichenbild"IMAGE");

        
// Fetch the marked image
        
switch($wm->type)
        {
            case 
"GIF":
                
imagegif($wm->getMarkedImage(), $this -> pfadIn $this-> file);
                break;
            case 
"JPG":
                
imagejpeg($wm->getMarkedImage(), $this -> pfadIn $this-> file);
                break;
            case 
"PNG":
                
imagepng($wm->getMarkedImage(), $this -> pfadIn $this-> file);
                break;
        }
    }



    
/**
     *  Funktion zum zählen von Files in einem ordner
     *
     * @param     string $ordner
     * @return     mixed
     */
    
function  scanDir()
    {

        
$handle=opendir ($this ->pfadIn);

        while (
false !== ($file readdir($handle)))
        {
            if(
$file != "." && $file != ".." && $file != 'Thumbs.db')
            {
                
$filearray[] = $file;
            }
        }

        
closedir($handle);
        return 
$filearray;
    }

    
/**
     * Berechnet neue Höhe/Breite
     *
     */
    
private function calcsize()
    {
        if(
$this -> pictureInfo[0] > $this -> pictureInfo[1])
        {
            
$this -> neueBreite $this -> maxWidth;
            
$this -> neueHoehe    intval($this -> pictureInfo[1] * $this -> neueBreite $this -> pictureInfo[0]);
        }
        else
        {
            
$this -> neueHoehe $this -> maxHigh;
            
$this -> neueBreite    intval($this -> pictureInfo[0] * $this -> neueHoehe $this -> pictureInfo[1]);
        }
    }

    
/**
     * Funktion welche den File-namen definiert
     *
     * @return unknown
     */
    
private function defineFileName()
    {
        
//Abfragen ob überhaupt eine namensänderung durchgeführt werden soll
        
if($this -> rename)
        {
            
//SOll ein randomname verwendet werden
            
if($this -> randomname)
            {
                
$this -> newFileName();
            }
            else
            {
                
$this -> newfilename $this -> filename;
            }
        }
        else
        {
            
$this -> newfilename $this-> file;
        }

        
//Überprüfen ob auch ein neuer filename gesetzt wurde!
        
if($this -> newfilename == '')
        {
            throw new 
Exception("Es wurde kein Filename definiert!");
        }
    }

    
/**
     * Erstellt das Thumbnail
     *
     */
    
private function createthumb()
    {
        if (
function_exists("ImageCreateTrueColor"))
        {
            
$this -> neueBreite;
            
$this -> neueHoehe;
            
$neuesBild    imagecreatetruecolor($this -> neueBreite$this -> neueHoehe);
        }
        else
        {
            
$neuesBild    imageCreate($this -> neueBreite,$this -> neueHoehe);
        }

        if(
$this -> pictureInfo[2]==1)
        {
            
// GIF
            
$altesBild    ImageCreateFromGIF($this -> pfadIn $this -> file);
            
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$this ->neueBreite,$this -> neueHoehe$this -> pictureInfo[0], $this -> pictureInfo[1]);
            
imageGIF($neuesBild,$this->pfadOut $this -> prefix$this -> newfilename ".gif");
        }

        if(
$this -> pictureInfo[2]==2)
        {
            
// JPG
            
$altesBild    ImageCreateFromJPEG($this -> pfadIn $this -> file);
            
imagecopyResized($neuesBild,$altesBild,0,0,0,0,$this ->neueBreite,$this -> neueHoehe$this -> pictureInfo[0], $this -> pictureInfo[1]);
            
ImageJPEG($neuesBild,$this->pfadOut $this -> prefix $this -> newfilename ".jpg");
        }

        if(
$this -> pictureInfo[2]==3)
        {
            
// PNG
            
$altesBild    ImageCreateFromPNG($this -> pfadIn $this -> file);
            
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$this ->neueBreite,$this -> neueHoehe$this -> pictureInfo[0], $this -> pictureInfo[1]);
            
ImagePNG($neuesBild,$this->pfadOut $this -> prefix $this -> newfilename ".png");
        }
        if(
$this -> pictureInfo[2] != && $this -> pictureInfo[2] != && $this -> pictureInfo[2] != 3)
        {
            throw new 
Exception("Dieses Bild-Format wird nicht unterstützt!");
        }
    }

    
/**
     * Funktion die zufllig einen Namen setzt!
     *
     */
    
private function newFileName()
    {
        
$this -> newfilename '';
        for(
$i 0$i<$this->randomlenght$i++)
        {
            
$abc = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0");
            
$zufall rand(032);
            
$this -> newfilename .=  $abc[$zufall];
        }
    }
}
?> 
setter für die variabeln hab ich aus platzgründen rausgenommen... kannst ja auch eifnach statt auf private auf public setzen..

das folgende paket brauchst du hierfür noch:
http://freshmeat.net/projects/phpwat...ease_id=140120
musst diese dann aber in class.wasserzeichen.php umbenenne wenn du die klasse benutzen kannst...

du kannst das obige script verändern wie du willst... dafür übernehm ich aber auch keine funktionsgarantie und behaupte auch nicht das es gut programmiert ist... solltest du abe rnoch irgendwelche verbesserungen haben wäre ich froh wenn du sie mir auch grad gibst... :)

was sichelrich noch nicht gut ist die erkennung des dateytypes... sollte man wohl mit mime-typen machen... aber funktionieren tuts...
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs

Geändert von Opendix (22.03.2006 um 21:17:43 Uhr)
Mit Zitat antworten
  #14  
Alt 22.03.2006, 21:22:54
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: Thumbnails

Zitat:
Zitat von N'Koto Zinde
nein dateiauswahlfelder kann ich schon herstellen. auch kann ich einzelne dateien hochladen, nur wie lade ich jetzt die vielen dateien auf einmal hoch, die ich zuvor in einzelnen auswahlfeldern ausgewählt habe (so wie es Giz sagte)
Du musst die Dateiauswahlfelder innerhalb eines Formulars machen... oder wo ist da das Problem?!
Zitat:
Zitat von N'Koto Zinde
@Giz
Hab dein Script jetzt ausprobiert, ist leider nicht das was ich mir vorstelle (zudem funktioniert es nicht). Dafür hab ich aber die erste funktion etwas modifiziert sodass sie funktioniert und das macht was was ich will (nämlich von einem bild eine kleinere version in einem anderen bild erstellen und als datei speichern.) nur geht irgendwo die farbe verloren. das original ist farbig, das mit der funktion erstelle thumbnail war dann aber schwarz weiß.
Bei mir funktionierts. Weiß ja nicht, was bei Dir nicht funktioniert, dann kann ich auch nicht helfen. Die Farbe stimmt bei mir, ich hatte Probleme mit der Farbe bei dem von Dir geposteten Script.
Mit Zitat antworten
  #15  
Alt 23.03.2006, 17:46:54
N'Koto Zinde
Guest
 
Beiträge: n/a
AW: Thumbnails

@Giz

soweit ich das skript ausprobiert habe, zeigt es mir zwar ein thumb an, dieses wird aber nicht in einer neuen datei gespeichert, sodass ich dann bild.jpg und tn_bild.jpg habe. und genau das wollte ich. Das geht mit dem ersten skript jetzt ganz gut (bis auf die Farbe halt). wenn dort keiner einen fehler findet ist es ja vielleicht auch ein ganz netter effekt.

mit dem upload hab ich eine idee gehabt und probiere sie mal aus, wenns klappt sag ich bescheid. (vielleicht muss ich einfach nur mehr nachdenken damit meine skripts funktionieren ;-))
Mit Zitat antworten
  #16  
Alt 24.03.2006, 13:08:03
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: Thumbnails

Zitat:
Zitat von N'Koto Zinde
@Giz

soweit ich das skript ausprobiert habe, zeigt es mir zwar ein thumb an, dieses wird aber nicht in einer neuen datei gespeichert, sodass ich dann bild.jpg und tn_bild.jpg habe. und genau das wollte ich. Das geht mit dem ersten skript jetzt ganz gut (bis auf die Farbe halt). wenn dort keiner einen fehler findet ist es ja vielleicht auch ein ganz netter effekt.
Wie gesagt, bei dem ersten hatte ich das Problem auch. Und das andere funktioniert bei mir definitiv. Und es werden auch die tn_bild.jpg erzeugt
PHP-Code:
$stat=imageJPEG($nB,$file); 
erledigt das.
Sicher, dass sie nicht da sind?
Mit Zitat antworten
  #17  
Alt 25.03.2006, 13:35:17
N'Koto Zinde
Guest
 
Beiträge: n/a
AW: Thumbnails

bei deinem skript muss ich doch nur die variable $datei mit dem dateinamen und die variable $verz mit dem verzeichnis belegen, oder ist da noch mehr?

--

noch was:

ich bin grad mit dem upload script am experimentieren. und es würde auch soweit funktionieren, ich hab aber nur ein problem:

in der ersten datei ist mein formular dynamisch (je nachdem wie viele bilder hochgeladen werden sollen) es sieht so aus:

PHP-Code:
  while($i <= $Anzahl) {
  echo 
"<input type='file' name='file$i'><br><br>";
  
$i $i+1;
 } 
die dateipfade werden also in den variablen $file1, $file2 usw. abgespeichert.

in der nächsten datei upload.php sollen dann die dateien hochgeladen werden. das script sieht so aus. es läuft entsprechend der anzahl der dateien wiederholt durch.

PHP-Code:
$file_name "$Name-$i.jpg";
 if(!empty(
$file_name)){
  if(@
copy(####,"../../galerie/$Name/$file_name")){
      
echo "Upload Datei $i beendent";}

an dieser stelle (####) sollte jetzt halt nacheinander $file1, $file2 usw. stehen. wie schaff ich das, sodass da ganze auch noch dynamisch bleibt?

Geändert von N'Koto Zinde (25.03.2006 um 20:41:11 Uhr)
Mit Zitat antworten
  #18  
Alt 26.03.2006, 21:03:00
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: Thumbnails

Zitat:
Zitat von N'Koto Zinde
bei deinem skript muss ich doch nur die variable $datei mit dem dateinamen und die variable $verz mit dem verzeichnis belegen, oder ist da noch mehr?
Nein, Du musst gar nix ersetzen. Du musst einfach ein "uploads" Verzeichnis erzeugen und da ein paar Bilder hineintun. tn.php und die andere aufzurufende Datei kommen in das gleiche Verzeichnis, in dem auch das uploads-Verzeichnis ist. Aber das hatte ich auch so beschrieben... dann rufst Du mal die erste Datei auf und es werden Thumbnals erzeugt und angezeigt.

Zu Deinem anderen Problem : Bau das ganze in eine Schleife z.B. wieder mit dem Zähler $i und nenne die Variable
PHP-Code:
$file$$i 
oder besser : Übergib die Daten gleich in einemArray...

Geändert von Giz (26.03.2006 um 21:04:12 Uhr)
Mit Zitat antworten
  #19  
Alt 02.04.2006, 18:04:17
N'Koto Zinde
Guest
 
Beiträge: n/a
AW: Thumbnails

das mit $file$$i funktioniert nicht.

Es bleibt also das Problem einen Variablennamen mit einer anderen Variable auszudrücken.

(Ich glaub, wenn das funktioniert, dann geht alles!) :-)
Mit Zitat antworten
  #20  
Alt 15.04.2006, 18:45:21
N'Koto Zinde
Guest
 
Beiträge: n/a
AW: Thumbnails

mit diesem eintrag möchte ich das thema noch mal in gedächtnis rufen, weil sich das problem leider nicht von alleine auflöst.

Zitat:
Es bleibt also das Problem einen Variablennamen mit einer anderen Variable auszudrücken.
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Darstellung von Thumbnails (konnte mit der Suche nix finden) Heppi PHP für Fortgeschrittene und Experten 4 16.03.2005 13:12:18
Ausgabe von Thumbnails jbecker PHP Grundlagen 1 02.01.2005 16:25:12
Thumbnails dynamisch erstellen nino PHP Grundlagen 11 28.05.2004 15:18:33
Thumbnails web-wg PHP für Fortgeschrittene und Experten 12 07.01.2004 10:40:39
thumbnails generieren ohne sie zwischenzuspeichern? x|zero PHP für Fortgeschrittene und Experten 3 22.11.2003 20:38:49


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt