php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.07.2004, 14:10  
Gast
 
Beiträge: n/a
Standard Bilder Upload und automatische thumbnails erstellen

Hallo,

also ich bin auch noch ein PHP Frischling. Ich habe mir ersteinmal die Grundkenntnisse per Fachbuch angeignet und habe einige freie Scripts mal versucht zu verstehen und anzupassen. Klappt soweit ganz gut nur finde ich weder ein freies Script oder schaffe es selber ein funktionsfähiges zu erstellen. Vielleicht könnt Ihr mir helfen.

Ich möchte ein Bild in ein Verzeichnis Uploaden, dabei soll automatsich in einem festen Unterverzeichniss ein thumbnail erstellt werden. Schön wäre es auch wenn man die thumbnails in einer Liste anzeigen kann, um auch Bilder zu löschen. Das war es auch schon. Leider sind alle Scripts die ich gefunden habe um einiges umfangreicher, was ich gar nicht benötige. Meisten sind es Photoalben, die brauche ich aber nicht. Man muss dem Bild beim Hochladen auch ein Namen geben könnene, da ich diesen Namen später noch brauche um einen Pfad zum Bild zu generieren.

Das Script RC_Uploader ist schon fast Ideal, kann aber keine Thumbnail erstellen. Ich habe versucht diese funktion hinzuzufügen, klappt jedoch nicht.

Nun mein Aufruf, wer kann mir helfen das zu verwriklichen oder hat sogar schon so ein fertiges Script.

Gruß Christian
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.07.2004, 14:19  
Gast
 
Beiträge: n/a
Standard

Hier findest Du ein paar Thumbnail Scripts
http://entwickler.com/itr/psecom,id,...ack&dp=&wm=wrd

GU
Peter
 
Alt 05.07.2004, 15:22  
Gast
 
Beiträge: n/a
Standard Danke für den Link

Danke für den Link, ich habe die Scripte gleich getestet. Der SimpleViewerAdmin scheint genau das zu können was ich möchte. Er ist natürlich viel zu umfangreich, ich könnte ja die Eingabe Felder einfach ausblenden, da ich ja eigentlich nur das Upload benötige. Jedoch kann dieses Script nicht den Dateinamen ändern.
Mein Traum wären:

FileUplad Feld
Umbennen Feld

Dann wird das Bild automatisch hochgeladen umbenannt und in einem Unterordner als gleichnamiges Thumbnail gespeichert.
Schön wäre es noch wenn es eine Bestätigungsmeldung geben würde oder eine Fehlermeldung Datei mit dem Namen existiert schon.

Mehr funktionenen brauche ich eigentlich nicht. Selbst auf die Admin konsole kann ich verzichten, bzw. es würde mir reichen die Thumbnail aufgelistet zubekommen mit der funktion delete.

Ist das so ungewöhnlich?
 
Alt 05.07.2004, 15:28  
Erfahrener Benutzer
 
Registriert seit: 01.12.2003
Beiträge: 4.113
supertramp
Standard

thumbnails erstellen? Dann guck mal beim Forum tutorial rein :wink:
__________________
Aufstrebend, kompetent und werbefrei.
www.developers-guide.net
supertramp ist offline  
Alt 05.07.2004, 15:59  
Gast
 
Beiträge: n/a
Standard

oder check:

http://www.phpfriend.de/ftopic17706.html
oder
http://www.codeschnipsel.net
 
Alt 06.07.2004, 22:42  
Gast
 
Beiträge: n/a
Standard Danke für Eure Tipps, nun aber...

Danke für Eure Tipps, nun aber bin ich auf den verschiedene Seiten mehr oder weniger fündig geworde und habe mir aus mehren Sripts ein funktionsfähiges zusammengestellt und angepaßt. Ich kann jetzt jpg Bilder uploaden und es wird automatisch ein gleichnamiger Thumbnail in einem anderen Pfad gespeichert.

Nun versuche ich schon den genzen Tag das rename hinzubekommen, leider ohner Erfolg. Ich benötige ein weiteres Eingabefeld in den ich eine Namen eingeben kann, so das die Datei vor dem Upload schom temporär umbenannt wird und automatisch auch die Endung jpg erhält ohne das man sie eingeben muss. Diese Eingabe Feld für den Dateinamen soll ein Pflichtfeldsein, sonst Fehlermeldung.
Und wie kann ich den eingegeben Namen an eine andere PHP Datei übergeben. Da ich den Upload in einem POPUP starten will und der dann eingegebene Name in dem vorherigen Formular übergeben werden soll, in dem man dann die restlichen Daten eingibt und es dann absendet.

Die Bilder will ich später als Pfad <img....> zu dem jeweiligen Datensatz anzeige lassen, dies Just for Info.

Hier mein Upload Code:

Code:
<?php

   // Absoluter Pfad zum Ordner in den die Datei hochgeladen werden soll.
   $pfad = "pictures";

   // Soll eine maximale Größe der Datei festgelegt werden ?
   $sizeabfrage = "yes";

   // Maximale Größe der Datei (Falls $sizeabfrage = "yes" ist)
   $filesize = "60000";

   // Soll die maximale Größe auch angezeigt werden ?
   $sizeanzeige = "no";

   // Was für Dateitypen sollen erlaubt sein ?
   $extend = "jpg|jpeg";

   // Sollen die erlaubten Dateitypen angezeigt werden ?
   $extendanzeige = "no";

   // Layout
   $body = "<body bgcolor=#E2E0E5 text=#000000 link=#FF0000 alink=#FF0000 vlink=#FF0000>";
   $font = "<font face=verdana size=2>";
?>


<?php
   echo "$body";
   echo "$font";
?>

<div align="center">

<?php

   $fehler = FALSE;

   if ($senden) {
      if ($file_name == "") {
         echo "
<font color=#FF0000>Es wurde kein Bild ausgewaehlt!</font>";
         $fehler = TRUE;
      }

      if (!$fehler)
      if (file_exists("$pfad/$file_name")) {
         echo "
<font color=#FF0000>Bildname schon vorhanden!</font>";
         $fehler = TRUE;
      }

      if (!$fehler)
      if ($sizeabfrage == "yes") {
         if ($file_size > $filesize) {
            echo "
<font color=#FF0000>Das Bild ist zu groß (max. 50kb)!</font>";
            $fehler = TRUE;
         }
      }

      if (!$fehler)
      if (!eregi("($extend)$", $file_name)) {
         echo "
<font color=#FF0000>Dieser Dateityp ist nicht erlaubt!</font>";
         $fehler = TRUE;
      }

      if (!$fehler) {
         if (copy($file, $pfad."/".$file_name)) {
            echo "
<font color=#00FF00>Bild hochgeladen</font>
";
            $fehler = FALSE;
         }
         else {
            echo "
<font color=#FF0000>Bild nicht hochgeladen</font>";
            $fehler = TRUE;
         }

      }
   }

   if ($fehler || !$senden) {

?>

<table align="center">

<form action="<?php $PHP_SELF; ?>" method="post" enctype="multipart/form-data">


Bitte Datei auswaehlen:


<?
   if ($sizeanzeige == "yes") {
      echo ("Maximale Größe: ".$filesize." Byte");
   }
?>


<?
   if ($extendanzeige == "yes") {
      echo ("Erlaubte Dateitypen: ".$extend);
   }
?>



<input type="file" size="30" name="file">


<input type="Submit" name="senden" value="hochladen">

</form>

</table>

<?
}
?>


<?php

// Vergleichen und Thumbs erstellen


//  Name des Ordners, in dem die Originale sind:
  $folder_scr  = "pictures";

//  Name des Ordners, in den die Thumbs sollen:
  $des_src     = "thumbs";

//  Max. Ausdehnung der thumb-Datei in x-Richtung
  $thumbx      = "100";

//  Max. Ausdehnung der thumb-Datei in y-Richtung
  $thumby      = "100";

  function mkthumb($img_src,     // Dateiname
                   $img_width,   // max. Größe in x-Richtung
                   $img_height,  // max. Größe in y-Richtung
                   $folder_scr,  // Ordner der normalen Bilder
                   $des_src)     // Ordner der Thumbs
  {
    $image = imagecreatefromjpeg($folder_scr."/".$img_src);
    list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src);
    if($src_width >= $src_height)
    {
      $new_image_width = $img_width;
      $new_image_height = $src_height * $img_width / $src_width;
    }
    if($src_width < $src_height)
    {
      $new_image_height = $img_width;
      $new_image_width = $src_width * $img_height / $src_height;
    }
    $new_image = imagecreatetruecolor($new_image_width, $new_image_height);
    imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
    imagejpeg($new_image, $des_src."/".$img_src, 100);
  }



  // Name dieser PHP-Datei
  $filename = $_SERVER['PHP_SELF'];

  // Verzeichnis wird geöffnet
  $verz=opendir($folder_scr);

  // Ein Array wird erstellt in dem nachher die Dateien gespeichert werden
  $linkl = array ();

  while ($file = readdir ($verz))
  {
    // Mit jeder Datei wird etwas getan. Damit "." und ".." nicht ins Array geschrieben werden, werden sie ausgenommen.
    if($file != "." && $file != ".." && $file != $filename)
    {
      array_push ($linkl, "$file"); // Der Dateiname wird in den Array $linkl geschrieben
    }
  }

  // Anzahl der Dateien im Ordner == Anzahl der Einträge im Array
  $anzahl = count($linkl);

  // Array wird nach Alphabet sortiert
  sort ($linkl);

  foreach($linkl as $key => $value)
  {

  // Überprüfung, ob das thumbnail schon existiert,
    if(!file_exists($des_src."/".$value))
    {
      // erstelle ein thumb
      mkthumb($value, $thumbx, $thumby, $folder_scr, $des_src);
    }

  // echo "<a href=\"".$folder_scr."/".$value."\">[img].$des_src.[/img]</a>"; // Der Wert des Arrays wird ausgegeben

  }

  // schließe das Verzeichnis:
  closedir($verz); 

?>
Ich danke Euch schon einmal für Eure hilfe.
 
Alt 07.07.2004, 09:15  
Gast
 
Beiträge: n/a
Standard

Ich bin leider gestern auch nicht weitergekommen, mit dem umbennen, habe aber da nochmal eine ganz andere Frage zu meinem Konzept.

Wenn ich mein Formular wie gewünscht ausfülle, das das oben genannte Script dann in einem POPUP aufrufe, wie wird dann der Feldwert in das Formular nach dem Upload automatisch übergeben ohne die bisherigen Eingaben zu löschen. Mit einem Refresh ist das Formular ja wieder leer. Oder ist das nicht zu lösen, und ich muss es nacheinander machen, das heisst erst das Uploadscript und wenn sich das schliesst wird das formular aufgerufen mit dem Feldwert, um es weiter auszufüllen.

Wie löst man so was logisch richtig. Wie gesagt ich habe hier erst seit einer Woche mit PHP zu tun und bin fleissig am Bücherlesen und Tutorials durchschauen.

Bis dahin Christian
 
Alt 07.07.2004, 09:37  
Gast
 
Beiträge: n/a
Standard

also wenn du eine Variable (in deinem Fall der Bildname) übergeben willst, dann kannst du dies entweder per Formular oder per URL tun..
Da du ja sowiso ein Formular hast, ist dies logischerweise die bessere Lösung..

empfangen kannst du die Variable auf der nächsten Seite mit
Code:
$_POST['Variablenname']
der Dateiname bei deinem Code steht in der Variable "Value".

Also machst du folgendes:
Code:
$Value = $_POST['Variablenname']
 
Alt 07.07.2004, 10:25  
Gast
 
Beiträge: n/a
Standard

Danke für dir Erklärung das habe ich verstande. Dann ist also besser erst den Bildupload zu machen und danach mit $value den Wert übernehmen und in das Formular zu übergeben. Das hat, wenn ich logisch kombinieren dann ja auch Vorteil, das ich das Bild schon im Formular anzeigen lassen kann.

Also so langsam fällt der groschen und ich muss immer wieder feststellen das PHP richtig spass macht.

Das mit dem umbennen scheint doch etwas komplizierter zu sein. Ich denke ich sollte dann dem Bild vorher schon einen Namen geben und diesen dann übernehmen, bzw so lassen.
 
Alt 07.07.2004, 10:36  
Gast
 
Beiträge: n/a
Standard

du speicherst ja das Bild 2 Mal.

1. Das Bild als solches

2. Das Thumbnail des Bildes

Wenn du später daraus eine Bilder Gallerie machen willst, ist es von Vorteil wenn die beiden Bilddateien den selben Namen tragen. Dies geht ohne Probleme, wenn du die Thumbnails in einem anderen Ordner speicherst.

Also ich würde zuerst den Namen des Bildes generieren und erst dann mit dem Uploads beginnen...
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder Upload PHP Tipps 2006 6 24.03.2006 15:19
Probelem bei meinem Upload Script für Bilder wiegia086 PHP Tipps 2006 3 17.03.2006 09:14
Bilder upload plus eintrag in DB tommi89 Datenbanken 1 28.01.2006 08:59
[Erledigt] Automatische benachrichtigung an den Admin nach User Upload PHP Tipps 2007 3 12.12.2005 21:25
[Erledigt] Bildergalerie Gallery 1.5-pl1 + Bilder upload Probleme !!!! PHP Tipps 2005-2 6 01.09.2005 23:22
[Erledigt] Mysql - PHP - Bilder upload Datenbanken 5 24.08.2005 00:04
Bilder Upload in MySQL...geht das? Aris Sung PHP-Fortgeschrittene 7 23.08.2005 23:18
Thumbnails serverseitig erstellen PHP-Fortgeschrittene 3 23.08.2005 12:42
[Erledigt] Bilder Upload für user in eigenen Ordner PHP-Fortgeschrittene 7 08.07.2005 10:38
Maximale grösse beim Upload der Bilder... PHP Tipps 2005-2 7 12.06.2005 17:45
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
Bilder - Upload - Email - MySQL PHP Tipps 2004 10 20.10.2004 15:48
[Erledigt] upload bilder PHP Tipps 2004 21 16.09.2004 13:57
mit image_create 2 bilder und mehr erstellen PHP Tipps 2004 4 03.06.2004 14:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rc_uploader, http://www.php.de/php-tipps-2004/4253-bilder-upload-und-automatische-thumbnails-erstellen.html, automatische thumbnails, bilder upload erstellen, php automatisch thumbnails erstellen, php thumbnails erstellen, bilder upload seite erstellen, bildupload php5 tutorial thumbnail, thumbnails erzeugen, thumbs automatisch erstellen, automatisch thumbnail, php bildupload mit automatischer größen, automatisch thumbnails erstellen php, automatische thumbnail, bilderupload erstellen, thumbnails erstellen php, php bild upload thumbnail erzeugen, thumbnail automatisch erstellen, php automatisch thumbs erstellen, thumbnails automatisch

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.