Ankündigung

Einklappen
Keine Ankündigung bisher.

File Upload mit mehreren Files

Einklappen

Neue Werbung 2019

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

  • File Upload mit mehreren Files

    Hallo,
    ich möchte einen File Upload mit mehreren Files realisieren. Es handelt sich dabei um eine Internet Fotoalbum, welches ich um den automatischen Upload bereichern will. Mehrere Upload-Buttons im Formular scheidetn aus, da es sich um bis zu 200 Dateien handeln kann. Ein Java Applet möchte (und kann) ich auch nicht verwenden. Jetzt bin ich auf den Gedanken gekommen, die Bilder in einer ZIP-Datei hochzuladen. Das ZIP wird dann vom Server entpackt und bearbeitet. Hat jemand damit schon Erfahrungen oder gibt es noch vieleicht eine einfachere Alternative?

  • #2
    PHP kann ZIP's read only öffnen (schreiben geht aus Lizenstechnichen Gründen nicht soweit ich weiß)
    ansonsten steht unter http://www.php.net/zip alles was du wissen must.
    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

    Kommentar


    • #3
      Nochmal zur Erklärung. Ich habe z.B. 100 Bilder (1.jpg, 2.jpg, ..., 100.jpg). Die packe ich auf meinem (Linux, Windows, Mac usw.) in eine ZIP-Datei (mypics.zip). Diese ZIP-Datei kann ich per File Upload auf meinen Server laden (sofern filesize noch ok). Auf dem Server >>>LESE<<< ich die ZIP-Datei und speichere die darin enthaltenen Bilder in ein Verzeichnis (z.B. uploaded-pics). Ich muss doch dabei kein ZIP erstellen. Ich habe mich bereits vor dem Posten meines ersten Beitrags über die Funktionen der ZZIPlib informiert. Meine Frage war auch nicht: "Wie mache ich ein ZIP?" oder "Wie lese ich ein ZIP?".

      Meine Frage, ist soetwas praktikabel oder oder gibt es noch vieleicht eine einfachere Alternative?

      Kommentar


      • #4
        HStev hat Dich auf die PHP Funktionen zum Lesen von ZIP Dateien verwiesen.
        Der Hinweis, dass damit nicht geschrieben werden kann, ist zusätzlich und steht deshalb auch in Klammern.

        Ja, das ist praktikabel; sofern das Modul zur Verfügung steht, ist das kein Problem.

        Kommentar


        • #5
          Zitat von [BUZ
          ]Meine Frage, ist soetwas praktikabel oder oder gibt es noch vieleicht eine einfachere Alternative?
          [ironie]Ich frage mich warum die Zip-Funktionen dokumentiert sind, scheinen wohl doch nur Anschauungsbeispiele zu sein die nicht funktionieren.[/ironie]
          Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

          Kommentar


          • #6
            PHP-Code:
            <?php

            $submitstring1 
            "Bilder hochladen";
            $submit $_POST['submit'];

            if (
            $submit == $submitstring1)
            {
             
            $x strrev($_SERVER['REQUEST_URI']);
             
            $subdir "../".$_REQUEST['id']."impressionen/";

             foreach (
            $_FILES["userfile"]["error"] as $key => $error)
             {
              
            $sfx "";
              if (
            $_FILES['userfile']['type'][$key] == "image/jpeg"$sfx ".jpg";
              if (
            $_FILES['userfile']['type'][$key] == "image/gif")  $sfx ".gif";
              if (
            $_FILES['userfile']['type'][$key] == "image/png")  $sfx ".png";

              if (
            $error == UPLOAD_ERR_OK)
              {
               
            $zielname $subdir.str_replace(array(" ",",","+","?","ä","ö","ü","ß"),array("_","_","_","_","ae","oe","ue","ss"),$_FILES['userfile']['name'][$key]);
               
            move_uploaded_file($_FILES["userfile"]["tmp_name"][$key], $zielname)
                 or die(
            "Upload mindestens eines Bildes fehlgeschlagen");
               @
            chmod ($zielname0755);
              }
             }
             unset(
            $submit);
            }

            echo 
            '<form action="'.$_SERVER['PHP_SELF'].'" method="POST" enctype="multipart/form-data">'.$n;
            echo 
            '<input type="hidden" name="id" value="'.$_REQUEST['id'].'">'.$n;
            echo 
            '<div style="width:100%;height:90%;overflow:auto;"><table style="width:96%;" CELLSPACING=3 CELLPADDING=0 BORDER=0>';

            for (
            $i=1;$i<=10;$i++)
            {
             echo 
            '<tr valign="middle"><td class="text2">Bild '.$i.'</td><td class="text2"><input type="file" style="width:350px;" name="userfile[]"></td></tr>'
            }
            echo 
            '<tr valign="middle"><td colspan="2" class="text2">
            <input type="submit" name="submit" value="'
            .$submitstring1.'"></td></tr>';

            echo 
            '</table></div>';
            echo 
            '</form>';

            ?>
            Enjoy.

            Kommentar


            • #7
              naja er hat aber geschrieben das er 200 Bilder hochladen möchten da wäre ein Zip angebrachter
              Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

              Kommentar


              • #8
                OK, danke nochmal für die schnelle Hilfe. Ich werde mich mal an die Arbeit machen...

                pssst @ Catweazle -> Bei deinem Script müsste ich die 10 Bilder von Hand auswählen. (10mal Durchsuchen bzw. Dateinamen angeben) und bei 11 Bilder müsste ich das Formular wieder ändern...

                Kommentar


                • #9
                  bei 11 musst du nur die for schleife anpassen, und so wie ich das verstehe ist das uploaden ja gar nicht wirklich das Problem bei dir..
                  :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                  Kommentar


                  • #10
                    @ dsmcg, klar kann ich die schleife auf 11 anpassen. und wenn es dann 12 sind, kann ich ja wieder anpassen usw. mein programm oder script (nennen wir es mal konzept) sollte die eigenschaft besitzen, mit einer variablen anzahl von bilder zurecht zu kommen, ohne jedes mal neu angepasst zu werden. du hast auch richtig erkannt, ich habe kein problem mit dem upload. sondern leider nur damit, dass aus sicherheitsgründen keine mehrfachauswahl beim upload geht. ist aber eine mehrfachauswahl erwünscht, kann dies nur über mehrere upload-buttons gemnacht werden ODER MANN MACHT --> THEMA DIESES POSTINGS <--

                    Kommentar


                    • #11
                      Zitat von [BUZ
                      ]sondern leider nur damit, dass aus sicherheitsgründen keine mehrfachauswahl beim upload geht.
                      Ich wüsste gerne mal was das für Sicherheitsgründe sein sollten...
                      Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                      Kommentar


                      • #12
                        @ HStev: ich kann auch nur vermuten...

                        Nachzulesen in SelfHTML "Felder für Datei-Upload":

                        Unter Erläuterung:
                        "Der Web-Browser sollte dann ein Eingabefeld anzeigen, das die Eingabe einer Datei (in den meisten Fällen mit Pfadnamen) erlaubt."

                        Unter Beachte Sie:
                        "Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von moderneren Browsern aus Sicherheitsgründen nicht mehr unterstützt."

                        Siehe dazu auch bitte: http://community.roxen.com/developer...c/rfc1867.html

                        Kommentar


                        • #13
                          Hallo,

                          Ich hab leider auch dasselbe Problem wie [Buz]. Allerdings ist auf meinen V-Server leider die ZZIPlib Bibliothek leider nicht installiert. Nun ist meine Frage gibt es zu dieser Methode Alternativen oder wie kann ich die Bib installieren.

                          Habe vor einigen Wochen dieses PHP code fragment aufgeschnappt weiß allerdings nicht wirklich was ich damit an fangen soll

                          system("unzip -qq $dest-d $src");

                          Kommentar


                          • #14
                            guck dir doch einfach die manpage von unzip(1) an
                            den system befehl von php findest du hier: www.php.net/system

                            Kommentar


                            • #15
                              hört sich vllt noobig an!
                              Aber wo finde ich die manpage zu unzip?

                              Ich hoffe das ist euch nicht zu lächerlich

                              Kommentar

                              Lädt...
                              X