nur jpg acceptieren !!!

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

  • #16
    schau Dir mal die KLasse remote_image() an
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #17
      Wo zu finden...?

      CAT Music Files

      Kommentar


      • #18
        Original geschrieben von Sky
        Wenn du mit getimagesize() das upgeloadete File überprüfst und den Rückgabewert checken willst, so ist das sicherlich eine gute und sichere Methode - aber eben nur für die Bildformate, die getimagesize() unterstützt - und mit Content-Type hat diese Funktion nichts am Hut, da das eine reine MIME-Sache ist.
        Mal zurück zum Thema, denn wir sind völlig ab des Weges gekommen

        wenn es um upgeloadete files geht, hab ich das mal so gemacht:
        <form method="post" enctype="multipart/form-data">
        <input type="file" name="bild">
        <input type="submit">
        </form>
        <?
        if($bild_type == "image/gif" || $bild_type == "image/jpeg" || $bild_type == "image/pjpeg"){
        // dann ist es ein gif oder jpeg
        }
        if($bild_type == "application/pdf"){
        // dann ist es ein pdf file
        }
        ?>
        Das kann man noch erweitern...
        und es funktioniert, ich glaub sogar ohne extensions, denn im file header is auf jeden Falkl der content type drin...


        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #19
          Original geschrieben von MelloPie
          [...], denn im file header is auf jeden Falkl der content type drin...
          Nein! Im HTTP-Header vom Browser.

          CAT Music Files

          Kommentar


          • #20
            Teste doch mal das hier aus und jetzt sag mir woher der Browser wissen soll, dass es ein gif is nach Deiner Meinung, wenn keine Extension dabei is???
            Benenne eine gif Datei um ohne extension. lege dies Script auf einen server.


            <form method="post" enctype="multipart/form-data">
            <input type="file" name="bild">
            <input type="submit">
            </form>
            <?
            print $bild_type;
            ?>

            und dann möchte ich wissen, woher Dein Browser jetzt weiss welchen content type das Bild hat, wenn nicht vom Bild selbst????
            Achso das funktioniert auch mit html dateien, pdfs docs, etc.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #21
              siehe PHP-Manual.

              $userfile_type - The mime type of the file if the browser provided this information. An example would be "image/gif".

              CAT Music Files

              Kommentar


              • #22
                Ja genau wenn der Browser es provided heisst wenn er es kennt aber der mime type is in der Datei...
                Ach vergiss es... Die Lösung zu dem Problem kann der Anfrager sich aussuchen...
                Ein JPG is ein JPG ob mit Extension oder ohne...
                Wenn der Browser es net kennt dann stellt er es nur nicht richtig dar und bietet es zum download an...
                So einfach ist das
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #23
                  Du solltest dein Wissen bzgl. MIME und Content-Types trotzdem nochmal überarbeiten.

                  CAT Music Files

                  Kommentar


                  • #24
                    Original geschrieben von Sky
                    Du solltest dein Wissen bzgl. MIME und Content-Types trotzdem nochmal überarbeiten.
                    Dito.

                    Die Frage hier ging etwa so:
                    "Wie kann ich nur jpgs akzeptieren?"

                    Am besten geht das über
                    <?if ($file_type==""?>
                    Wer nur die Extension überprüft, dem kann man ja alles auf den Server laden...
                    Nice to have...

                    Übrigens ist eine komplette Liste der MIME Typen unter RFC 2045 zu finden

                    trotzdem, da ich Mein Wissen überarbeiten möchte würde ich gern wissen wie beim upload der Header des Browsers bestimmen soll, was für eine Datei ich uploade...
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #25
                      Also...

                      Der Browser zeigt das Form an, lässt den Benutzer die Datei auswählen und geht, nachdem der Submit-Button vom User gedrückt wurde, folgendermaßen (in etwa, nur schematisch am Beispiel von multipart/byteranges, was multipart/form-data ziemlich nahe kommt) vor:

                      PHP-Code:
                      HTTP/1.1 206 Partial content
                      Date
                      : ...
                      Last-modified: ...
                      Content-typemultipart/byteranges;
                      boundary=blablub

                      --blablub

                      Content
                      -type
                      Hier schaut der Browser, welche Endung die Datei hat und welchen Content-Type er dafür in seiner Liste hat.
                      Anschließend kommen optional weitere Form-Fields:
                      PHP-Code:
                      Content-rangebytes x-y/z

                      --blablub

                      Content
                      -type: ...
                      Content-range: ... 
                      ...und schließt das Ganze dann ab:
                      PHP-Code:
                      --blablub-- 
                      PHP baut das Ganze dann auseinander und überträgt die einzelnen Felder in Variablen, so auch die HTTP_POST_VARS[file][...], welche die Informationen des Headers enthält.

                      Zu deinem anderen Punkt: Es ist definitiv _nicht_ egal, wie der Anwender letztendlich die Erweiterung der Datei benennt. Wäre erlaubt, dass PHP, CGI, PL und andere ausführbare Dateien upgeloadet werden dürfen, so stellt das ein recht großes Sicherheitsrisiko dar.

                      CAT Music Files

                      Kommentar


                      • #26
                        Original geschrieben von Sky
                        Also...
                        Hier schaut der Browser, welche Endung die Datei hat und welchen Content-Type er dafür in seiner Liste hat.
                        Anschließend kommen optional weitere Form-Fields:
                        [php]
                        Content-range: bytes x-y/z

                        Wenn der Browser nach der Endung schaut... woher weiss er dann dass eine Datei ohne Extension ein gif, jpg, etc. is???
                        Das wüde ich gerne noch wissen...

                        Der Browser weiss es einfach??

                        Nein, die Antwort kommt vom Server, weil die Datei es mitliefert.
                        Du kannst jetzt noch ein paar Zeilen aus dem Buch abschreiben oder aus ner online hilfe kopieren, aber ne richtige Antwort auf diese Frage kannst Du nicht finden.

                        Naja, ich werde mein Wissen mal überarbeiten...
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar


                        • #27
                          Uploade mal eine Datei ohne Extension - ich weiß nicht, welchen Browser du benutzt, aber Opera gibt dann einfach den Standardtyp application/octet-stream an.

                          CAT Music Files

                          Kommentar

                          Lädt...
                          X