• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

bei Upload thumbnail für Anfänger

Status
Für weitere Antworten geschlossen.

tim-peters

Neues Mitglied
Hey
Ich benötige ein Script, dass von einem Bild beim hochladen ein (möglichst gutes!) Thumbnail erstellt. Sowohl das upload-script als auch das thumbnail-script sind schon vorhanden und funktionieren, allerdings kriege ich die beiden Scripte nicht kombiniert. :(

Hier die beiden Scripte:
thumbnail:
PHP:
<?PHP
  $PicPathIn="./upload/";
  $PicPathOut="./upload/out/";

  // Orginalbild
  $bild="ugly.jpg";

  // Bilddaten feststellen
  $size=getimagesize("$PicPathIn"."$bild");
  $breite=$size[0];
  $hoehe=$size[1];
  $neueBreite=100;
  $neueHoehe=intval($hoehe*$neueBreite/$breite);

  if($size[2]==1) {
  // GIF
  $altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");
  $neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
$neueBreite,$neueHoehe,$breite,$hoehe);
  ImageGIF($neuesBild,"$PicPathOut"."TN"."$bild");
  }

  if($size[2]==2) {
  // JPG
  $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
  $neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
$neueBreite,$neueHoehe,$breite,$hoehe);
  ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild");
  }

  if($size[2]==3) {
  // PNG
  $altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");
  $neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,
$neueBreite,$neueHoehe,$breite,$hoehe);
  ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild");
  }
?>
upload:
PHP:
<?php $ordner = $_POST["ordner"]; $dateityp = GetImageSize($_FILES['datei']['tmp_name']); if($dateityp[2] != 0)if($dateityp[2] != 0) { if($_FILES['datei']['size'] < 102400) { move_uploaded_file($_FILES['datei']['tmp_name'], "images/content/$ordner/".$_FILES['datei']['name']); echo "Das Bild wurde Erfolgreich als ".$_FILES['datei']['name']." hochgeladen. Du kannst es dir, nachdem du die Seite neu geladen hast unter $ordner anschauen!"; } else{ echo "Das Bild darf nicht größer als 3MB sein "; } } else { echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen"; } ?>
Wie bekomme ich das hin?

Ausserdem wollte ich fragen ob mir jemand helfen kann, dass thumbnail-script auf alle Dateien eines Ordners anzuwenden, da schon sehr viele Bilder vorhanden sind und ich nicht von allen einzeln ein thumbnail erstellen will.;-)


wäre über eure Hilfe sehr dankbar!:-D

lg Tim-
 
Werbung:
Hast Glück das ich vorgestern sowas gebaut habe.

Ich hab das so gelöst, das ich zunächst die hochzuladende Datei auf verschiedene Sachen prüfe (Sonderzeichen, Dateigröße, Dateiendung) und dann erst die Datei hochlade. Mein Skript unterscheidet dabei noch zwischen Bildern und Dateien und für die Bilder habe ich das so gemacht, dass ich zuerst das Bild in den vorgesehenen Ordner hochlade und den Pfad des hochgeladenen Bildes an das Thumbnailscript übergebe.

Zur Sicherheit mache ich noch eine Abfrage ob das Thumbnailbild bzw. das Originalbild bereits existiert.

Für viele Dateien der gleichen Art nehme ich generell die Funktion glob();
Die Funktion kannst / musst du in einer foreach-Schleife anwenden und in der foreach-Schleife rufst du für jedes Bild eben das Thumbnailscript auf und übergibst den Bildpfad. Auch hier wieder daran denken zu prüfen ob das Thumbnail schon erstellt wurde.

Gruß

NewLord
 
Werbung:
Ganz ehrlich - bei dem Beitrag hab ich gelesen:

"kannst Du mir dein Script vielleicht geben? dann kann ich das direkt kopieren..wär echt supi"

Aber was ist daran denn so schwer:

PHP:
<?php
    $uploaddir = '/uploads/';
    $uploadfile = $uploaddir.$FILES['user_file']['name'];
    if(move_uploaded_file($FILES['user_file']['tmp_name'], $uploadfile)) {

        // Funktionsaufruf des Thumbnailskriptes mit übergabe des Bildpfades
        createThumbnail($uploadfile);
    }
?>
Für mehrere Bilder die bereits existieren:

PHP:
<?php
    foreach(glob('/uploads/*.jpg') as $picture) {
        // Funktionsaufruf des Thumbnailskriptes mit übergabe des Bildpfades
        createThumbnail($picture);
    }
?>
Die Codes sind nur angedeutet, so dass du vielleicht jetzt auf nen grünen Zweig / Gedanken kommst.

MfG

NewLord
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben