HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum
 

 
 

Anzeige 
 
HTMLWorld » Forum

Thema anzeigen - Thumbnail automatisch beim bildupload erstellen

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Thumbnail automatisch beim bildupload erstellen

 

Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   PHP
Vorheriges Thema:
Nächstes Thema:  
Autor Nachricht
marck48
Häufiger Poster


Anmeldungsdatum: 10.02.2009
Beiträge: 25
Wohnort: Eberswalde

BeitragVerfasst am: 21.04.2009 09:10:46    Titel: Thumbnail automatisch beim bildupload erstellen Antworten mit Zitat

Hallo,
ich hab wieder eine Frage :
Durch welche veränderungen bekomme ich es hin, das beim Bild-upload automatisch ein Thumbnail in ein extra Verzeichnis erstellt wird...
ich bin immernoch anfänger und würde mich über jede hilfe sehr freuen
vielen dank
marck

das script für den upload
Code:

<?php
{
if($_FILES['userfile']['tmp_name'])

{
$file = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$path = "../fotos/";


//Type abfangen
$filetype = $_FILES['userfile']['type'];

switch($filetype)
{
   case "image/pjpeg":
      $type = ".jpg";
   break;
   
   case "image/gif":
      $type = ".gif";
   break;
   
   case "image/jpeg":
      $type = ".jpg";
   break;
   
   case "image/x-png":
      $type = ".png";
   break;
   //usw.
}

//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;



//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;


if (!file_exists($path.$myFilename))
{
   if(!copy($file,$path.$myFilename))
      echo "Konnte nicht speichern.";
   else
      echo "Gespeichert.";
}
else
{
   echo "Foto schon vorhanden.";
}

}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Simon
Häufiger Poster


Anmeldungsdatum: 03.05.2005
Beiträge: 195
Wohnort: Schweiz

BeitragVerfasst am: 21.04.2009 19:05:08    Titel: Antworten mit Zitat

Dafür musst Du auf die Library php_gd.dll zugreifen.
Ein einfaches Tutorial gibts hier (auch für Anfänger Smile )

http://www.php-resource.de/tutorials/read/24/1/

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
marck48
Häufiger Poster


Anmeldungsdatum: 10.02.2009
Beiträge: 25
Wohnort: Eberswalde

BeitragVerfasst am: 23.04.2009 08:29:08    Titel: Thumbnail automatisch beim bildupload erstellen Antworten mit Zitat

Hallo
vielen Dank für die Antwort...
kann ich dieses script aus dem oben genannten Tutorial einfach an meins anhängen das die Thumbnails beim uploaden erzeugt werden?
Die Originalfotos werden in das Verzeichnis fotos/ kopiert und die Thumbnails sollen mit dem gleichen namen in fotos/cache/ kopiert werden.
Gruß
marck
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
marck48
Häufiger Poster


Anmeldungsdatum: 10.02.2009
Beiträge: 25
Wohnort: Eberswalde

BeitragVerfasst am: 24.04.2009 15:33:26    Titel: Thumbnail automatisch beim bildupload erstellen Antworten mit Zitat

Hallo,
das mit dem thumbnails hab ich jetzt hin bekommen danke für den tip nochmal.
Jetzt würde ich noch gern das script weiter oben zum upload von mehreren bildern gleichzeitig benutzen...
weiß aber leider nicht wie ich das ändern kann...
vielleicht kann mir da jemand helfen.
Danke und Gruß
marck
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Simon
Häufiger Poster


Anmeldungsdatum: 03.05.2005
Beiträge: 195
Wohnort: Schweiz

BeitragVerfasst am: 25.04.2009 20:07:03    Titel: Antworten mit Zitat

Windows verbietet dir den upload von mehreren Dateien gleichzeitig.
Einzige Möglichkeit: Lade die Bilder als Zip-Archiv hoch und entpacke es online.

Gruss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
marck48
Häufiger Poster


Anmeldungsdatum: 10.02.2009
Beiträge: 25
Wohnort: Eberswalde

BeitragVerfasst am: 29.04.2009 07:59:04    Titel: Thumbnail automatisch beim bildupload erstellen Antworten mit Zitat

Hallo,

hier auf der Seite bei "php,Java und Co" -->"php-Beispiele wird beschrieben wie man mehrere Bilder gleichzeitig uploaden kann mit mehreren input-feldern im html-formular ich bekomme es nur nicht hin es auf mein Script zu übertragen. Ich habe es mal weiter unten angezeigt

Code:

<?php
{
if($_FILES['userfile']['tmp_name'])

{
$file = $_FILES['userfile']['tmp_name'];
$filesize = $_FILES['userfile']['size'];
$path = "../fotos/";


//Type abfangen
$filetype = $_FILES['userfile']['type'];

switch($filetype)
{
   case "image/pjpeg":
      $type = ".jpg";
   break;
   
   case "image/gif":
      $type = ".gif";
   break;
   
   case "image/jpeg":
      $type = ".jpg";
   break;
   
   case "image/x-png":
      $type = ".png";
   break;
   //usw.
}

//anzahl der dateien im Verzeichnis
$all_files = count(scandir($path)) - 2;



//Jetzt individuellen Namen für das Bild generieren
$myFilename = "bild_".$all_files.$type;


if (!file_exists($path.$myFilename))
{
   if(!copy($file,$path.$myFilename))
      echo "Konnte nicht speichern.";
   else
      echo "Gespeichert.";
}
else
{
   echo "Foto schon vorhanden.";
}

}


//thumbnail erstellen


$path="../fotos/";
$PicPathOut="../fotos/cache/";

// Orginalbild


// Bilddaten ermitteln
$size= GetImageSize("$path"."$myFilename");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
// GIF
$altesBild= imagecreatefromgif("$path"."$myFilename");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 imageGIF($neuesBild,"$PicPathOut"."$myFilename");
}

if($size[2]==2) {
// JPG
$altesBild= ImageCreateFromJPEG("$path"."$myFilename");
$neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
 imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImageJPEG($neuesBild,"$PicPathOut"."$myFilename");
}

if($size[2]==3) {
// PNG
$altesBild= ImageCreateFromPNG("$path"."$myFilename");
$neuesBild= imagecreatetruecolor($neueBreite,$neueHoehe);
 imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImagePNG($neuesBild,"$PicPathOut"."$myFilename");
}



Ich würde mich sehr freuen wenn mir jemand helfen könnte
Gruß
marck
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Frosty
Häufiger Poster


Anmeldungsdatum: 27.10.2008
Beiträge: 221

BeitragVerfasst am: 29.04.2009 09:22:33    Titel: Antworten mit Zitat

Ahoi,

hier hast du eine Möglichkeit:

Code:
<?php
if($_FILES['userfile']['tmp_name'])
{
   $file = $_FILES['userfile']['tmp_name'];
   $filesize = $_FILES['userfile']['size'];
   $path = "../fotos/";

   //Type abfangen
   $filetype = $_FILES['userfile']['type'];

   switch($filetype)
   {
      case "image/pjpeg":
         $type = ".jpg";
      break;
      
      case "image/gif":
         $type = ".gif";
      break;
      
      case "image/jpeg":
         $type = ".jpg";
      break;
      
      case "image/x-png":
         $type = ".png";
      break;
      //usw.
   }

   //anzahl der dateien im Verzeichnis
   $all_files = count(scandir($path)) - 2;

   //Jetzt individuellen Namen für das Bild generieren
   $myFilename = "bild_".$all_files.$type;

   if (!file_exists($path.$myFilename))
   {
         if(!copy($file,$path.$myFilename))
            echo "Konnte nicht speichern.";
         else
            //Jetzt das Bild herunterskalieren für das Thumb
         $bild_location = $path.$myFilename;
         $save_name = "../fotos/cache/".$myFilename;
         resize($bild_location, $save_name, 50);
         
         echo "Gespeichert.";
   }
   else
   {
         echo "Foto schon vorhanden.";
   }
}

/** FUNKTION: Bilder auf eine bestimmte Größe skalieren **/
function resize($file, $save, $width, $height=false)
{
   if(!$height)
      $height = $width;
      
   $infos = @getimagesize($file);
   
   $iWidth = $infos[0];
   $iHeight = $infos[1];
   $iRatioW = $width / $iWidth;
   $iRatioH = $height / $iHeight;
   
   if($iRatioW < $iRatioH)
   {
      $iNewW = $iWidth * $iRatioW;
      $iNewH = $iHeight * $iRatioW;
   }
   else
   {
      $iNewW = $iWidth * $iRatioH;
      $iNewH = $iHeight * $iRatioH;
   } // if
   
   if($infos[2] == 1)
      $imgA = @imagecreatefromgif($file);
   elseif($infos[2] == 2)
      $imgA = @imagecreatefromjpeg($file);
   elseif($infos[2] == 3)
      $imgA = @imagecreatefrompng($file);
      
      
   $imgB = @imagecreatetruecolor($iNewW, $iNewH);
   
   if(!$imgB)
      $imgB = @imagecreate($iNewW, $iNewH);
   
   if(!@imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]))
      @imagecopyresized($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
      
   $re = null;
   umask(0000);
   
   if($infos[2] == 1)
      $re = imagegif($imgB, $save);
   elseif($infos[2] == 2)
      $re = imagejpeg($imgB, $save, 100);
   else
      $re = imagepng($imgB, $save);
      
   return true;
}
?>


LG
Frost
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Frosty
Häufiger Poster


Anmeldungsdatum: 27.10.2008
Beiträge: 221

BeitragVerfasst am: 29.04.2009 09:35:28    Titel: Antworten mit Zitat

Oh, sorry hab nicht gelesen: Du möchtest ja mehrfachupload.
Dann sollte es so in etwa aussehen. Beachte das Formular ganz unten!!!!!

Code:
<?php
//Alle gesendeten Bilder durchlaufen
for($i=1;$i<=3;$i++)
{
   $userfile_name = "userfile_".$i;
   
   if($_FILES[$userfile_name]['tmp_name'])
   {
      $file = $_FILES[$userfile_name]['tmp_name'];
      $filesize = $_FILES[$userfile_name]['size'];
      $path = "../fotos/";
   
      //Type abfangen
      $filetype = $_FILES[$userfile_name]['type'];
   
      switch($filetype)
      {
         case "image/pjpeg":
            $type = ".jpg";
         break;
         
         case "image/gif":
            $type = ".gif";
         break;
         
         case "image/jpeg":
            $type = ".jpg";
         break;
         
         case "image/x-png":
            $type = ".png";
         break;
         //usw.
      }
   
      //anzahl der dateien im Verzeichnis
      $all_files = count(scandir($path)) - 2;
   
      //Jetzt individuellen Namen für das Bild generieren
      $myFilename = "bild_".$all_files.$type;
   
      if (!file_exists($path.$myFilename))
      {
         if(!copy($file,$path.$myFilename))
            echo "Konnte nicht speichern.";
         else
            //Jetzt das Bild herunterskalieren für das Thumb
            $bild_location = $path.$myFilename;
            $save_name = "../fotos/cache/".$myFilename;
            resize($bild_location, $save_name, 50);
            
            echo "Gespeichert.";
      }
      else
      {
         echo "Foto schon vorhanden.";
      }
   }
}

/** FUNKTION: Bilder auf eine bestimmte Größe skalieren **/
function resize($file, $save, $width, $height=false)
{
   if(!$height)
      $height = $width;
      
   $infos = @getimagesize($file);
   
   $iWidth = $infos[0];
   $iHeight = $infos[1];
   $iRatioW = $width / $iWidth;
   $iRatioH = $height / $iHeight;
   
   if($iRatioW < $iRatioH)
   {
      $iNewW = $iWidth * $iRatioW;
      $iNewH = $iHeight * $iRatioW;
   }
   else
   {
      $iNewW = $iWidth * $iRatioH;
      $iNewH = $iHeight * $iRatioH;
   } // if
   
   if($infos[2] == 1)
      $imgA = @imagecreatefromgif($file);
   elseif($infos[2] == 2)
      $imgA = @imagecreatefromjpeg($file);
   elseif($infos[2] == 3)
      $imgA = @imagecreatefrompng($file);
      
      
   $imgB = @imagecreatetruecolor($iNewW, $iNewH);
   
   if(!$imgB)
      $imgB = @imagecreate($iNewW, $iNewH);
   
   if(!@imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]))
      @imagecopyresized($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
      
   $re = null;
   umask(0000);
   
   if($infos[2] == 1)
      $re = imagegif($imgB, $save);
   elseif($infos[2] == 2)
      $re = imagejpeg($imgB, $save, 100);
   else
      $re = imagepng($imgB, $save);
      
   return true;
}
?>
<form action="" method="post" enctype="multipart/form-data">
   Bilder:
         <input type="file" name="userfile_1"><br />
         <input type="file" name="userfile_2"><br />
         <input type="file" name="userfile_3">         
         <input type="submit" name="new_image" value="OK">         
</form>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    HTMLWorld Foren-Übersicht
   PHP
Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.