upload mehrer bilder mit resize

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • upload mehrer bilder mit resize

    hallo forum,

    bin einer von vielen, die wiedermal ein problem mit upload haben.
    eigentlich hab ich nicht mit den upload das problem, sondern mehr mit dem resize.

    ich habe ein formular, meine dateifelder nenne ich alle userfile[], um mehrere bilder gleichzeitig hochzuladen.

    das hochladen funzt, doch werden meine bilder nicht in der größe geändert, hab den code schon mehrmals geprüft, doch ich finde meinen fehler nicht.

    desweiteren möchte ich dann die bildnamen übergeben, um sie später in die db schreiben kann auch das funzt nicht.

    bitte um eure hilfe! hier meine function:
    PHP-Code:
    function file_upload_resize(){
        
    // userfile ist der Name des input-feldes im Upload-Formular
        
    global $userfile$userfile_name$userfile_type$userfile_size;
        for ( 
    $i 0$i count $userfile ); $i++)
        {
            
    $Grafikdatei $_FILES['userfile']['name'][$i];
            
    $source_file $_FILES['userfile'][$i];
            
            
    // Bilddaten feststellen 
            
    $Bilddaten getimagesize("$source_file");                     // Gibt die Bildeigenschaften einer GIF-, JPEG- oder PNG-Datei als Array zurück: $arr[0]= Bildwidth, $arr[1]= Bildhöhe, $arr[2]= Bildtyp (gif=1,jpg=2,png=3), $arr[4]= String ("height=xxx width=xxx") zur Verwendung im <img>-Tag
            
    $breite $Bilddaten[0]; 
            
    $hoehe $Bilddaten[1]; 
            
    $neueBreite 20;                                             // Festlegung der neune Bildbreite
            
    $neueHoehe intval($hoehe*$neueBreite/$breite);             // Berechnung der neuen Bildhöhe im Verhältnis zur Breite

            
    if($Bilddaten[2] == 2)
            {
            
    $Originalgrafik ImageCreateFromJPEG($Grafikdatei);
            
    $Thumbnailgrafik ImageCreate($ThumbnailBreite$ThumbnailHoehe);
            
    ImageCopyResized($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
            
    ImageJPEG($Thumbnailgrafik"thumb_".$Grafikdatei);
            }
            
            
    // Ordner, indem die Thumbs abgespeichert werden
            
    $destination_file "./pix/";
            
            
    move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $destination_file."thumb_".$Grafikdatei);
            
            if ( empty ( 
    $Grafikdatei ) ){ $bild[$i] = "";}
            else { 
    $bild[$i] = $destination_file."thumb_".$Grafikdatei;}
            
            return 
    $bild[$i];
        }


  • #2
    Re: upload mehrer bilder mit resize

    dies
    ImageJPEG($Thumbnailgrafik, "thumb_".$Grafikdatei);
    soll wohl die resize-te grfaik abspeichern - aber wo geschieht das? im temp-verzeichnis? ich glaube kaum ...

    und hier
    move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $destination_file."thumb_".$Grafikdatei);
    versuchst du das erzeugte thumbnail aus dem temporären folder zu verschieben - aber wie gesagt, ich glaube nicht, dass es wirklich dort liegt ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      irgenwie versteh ich dich glaube ich nicht!

      was soll ich da dann deiner meinung nach machen?

      Kommentar


      • #4
        Vielleicht hilft dir das:

        Upload mehrerer Dateien
        Mehrere Dateien können hochgeladen werden, indem Sie verschiedene Namen name für input verwenden.

        Es ist ebenfalls möglich, mehrere Dateien simultan hochzuladen, und die Informationen automatisch in Arrays zu erhalten. Um dies zu tun, verwenden Sie in dem HTML Formular die gleiche Array-Sende-Syntax wie bei Auswahllisten mit Mehrfachauswahl und Checkboxen:

        Anmerkung: Die Unterstützung für den Upload von mehreren Dateien wurde in PHP 3.0.10 hinzugefügt.

        Beispiel 18-3. Upload mehrerer Dateien

        <form action="file-upload.php" method="post" enctype="multipart/form-data">
        Send these files:<br>
        <input name="userfile[]" type="file"><br>
        <input name="userfile[]" type="file"><br>
        <input type="submit" value="Send files">
        </form>




        Wenn das obige Formular übermittelt ist, werden die Arrays $_FILES['userfile'], $_FILES['userfile']['name'] und $_FILES['userfile']['size'] initialisiert (wie auch in $HTTP_POST_FILES vor PHP Version 4.1.0.). Ist register_globals aktiviert, werden auch globale Variablen für die hochgeladenen Dateien initialisiert. Jedes von ihnen ist ein numerisch indiziertes Array mit den entsprechenden Werten für die hochgeladenen Dateien.

        Nehmen wir zum Beispiel an, dass die Dateinamen /home/test/review.html und /home/test/xwp.out übermittelt wurden. In diesem Fall würde $_FILES['userfile']['name'][0] review.html enthalten, und $_FILES['userfile']['name'][1] hätte den Wert xwp.out. Genauso würde $_FILES['userfile']['size'][0] die Dateigröße von review.html enthalten, usw.

        $_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] und $_FILES['userfile']['type'][0] sind ebenfalls gesetzt.


        Gruss
        Yezariel
        mens agitat molem

        Kommentar


        • #5
          Original geschrieben von whoda
          irgenwie versteh ich dich glaube ich nicht!
          hmpf.

          mit ImageJPEG() speichert du ein bild - ohne weitere pfadangaben dürfte dies wohl im aktuellen pfad passieren.

          anschliessend bewegst du mit move_uploaded_file das hochgeladene bild in ein anderes verzeichnis - wie kannst du da erwarten, dass dieses resized wurde?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            aber das arbeite ich doch mit den zeilen
            PHP-Code:
            $Grafikdatei $_FILES['userfile']['name'][$i];
            $source_file $_FILES['userfile'][$i]; 
            durch. im ganzen hab ich elf dateifelder und bei count ($userfile) gibt er mir diese auch aus, also erhöht sich doch mein $i und ich gehen alle arrays durch, oder übersehe ich etwas?

            Kommentar


            • #7
              Ich würde beim Source-File-Namen mal $_FILES['userfile']['tmp_name'][$i] nehmen...
              mens agitat molem

              Kommentar


              • #8
                Original geschrieben von whoda
                aber das arbeite ich doch mit den zeilen [...] durch.
                du stellst dich heute aber sehr begriffstutzig an ...
                PHP-Code:
                ImageJPEG($Thumbnailgrafik"thumb_".$Grafikdatei); 
                hiermit wird das in den drei zeilen davor verkleinerte bild abgespeichert - da keine pfadangabe erfolgt, wohl in dem verzeichnis, in dem auch das script liegt.
                PHP-Code:
                // Ordner, indem die Thumbs abgespeichert werden
                        
                $destination_file "./pix/";
                        
                        
                move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $destination_file."thumb_".$Grafikdatei); 
                dem kommentar nach, scheinst du hier das hochgeladene bild in den ordner zu verschieben, in dem du die thumbs haben willst - das hochgeladene bild ist aber nicht das verkleinerte!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X