[PHP] Dateityp anzeigen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von MrDick, 5. September 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. September 2006
    Dateityp anzeigen

    Hallo,

    ich habe mir ein Script geschrieben der mir aus einem FTP Ordner Die Dateien anzeigt. Bin jetzt soweit das er mir den Namen, Größe und nen Link zum Downloaden anzeigt.

    Wie bekomme ich es hin das er mir auch den Typ anzeigt, sprich JPEG, avi oder so weiss das jemand???
     
  2. 5. September 2006
    AW: Dateityp anzeigen

    Hehe...

    PHP: filetype - Manual
    ?

     
  3. 5. September 2006
    AW: Dateityp anzeigen

    Hm nein das ist nicht das was ich gesucht habe:

    [OUOTE]Mögliche Werte sind fifo, char, dir, block, link, file und unknown. [/QUOTE]

    Demnach habe bekomme ich file als rückgabewert.

    Will aber sowas wie bei einem "Hochlade Script" wo ich dann mit $_FILES['file']['typ'] z.B. als Wert Text/Plain bei einer Textdatei bekomme.
     
  4. 5. September 2006
    AW: Dateityp anzeigen

    Hi,
    dafür gibts glaube ich keine Standartfunktion. Entweder du schreibst dir selbst eine, die aus der Dateiendung den Mime Type ausließt oder du nimmst ein bereits fertiges Script: http://www.phpclasses.org/browse/file/2743.html

    Direkt den Dateiheader auszulesen, wäre wohl etwas übertrieben.^^

    greetz blackbone
     
  5. 5. September 2006
    AW: Dateityp anzeigen

    PHP: mime_content_type - Manual
     
  6. 5. September 2006
    AW: Dateityp anzeigen

    Wenn ich mal so manche Seiten angucke wo dann steht ob das jeweilige File eine MP3 Datei ist oder ein Video, machen die das dann über eine Datebnak wo der jeweilige Typ dann beim Hochladen ausgelesen wird und dann in die DB gespeichert wird?

    Also diese Funktion ist schon gut nur leider geht sie bei mir nicht, muss ich dafür noch irgendwas anderes machen?
     
  7. 5. September 2006
    AW: Dateityp anzeigen

    Das wäre die effizienteste Lösung.^^ Mir fällt spontan auch keine andere Möglichkeit ein. (Was nicht heißen muss, dass es sie nicht gibt.) Genrell sind aber die Mime-Types nirgends global vordefiniert, woraus folgt, dass sie individuell vergeben werden. Sprich sie werden immer ausgelesen und zu geordnet. (Ob nun von einer integrierten php Funktion alá "mime_content_type" oder einer selbstgeschriebenen Funktion.)

    Ich denke die o.g. Funktion reicht für dein Anliegen aus, oder?

    greetz blackbone
     
  8. 6. September 2006
    AW: Dateityp anzeigen

    meine glaskugel ist kaputt, kann ich dir also so (ohne quellcode) nicht sagen.
     
  9. 6. September 2006
    AW: Dateityp anzeigen

    Ich konnte meine knapp über dem Boden noch auffangen.^^ =)

    Oder das die Erweiterung mime.magic fehlt.^^

    greetz blackbone

    Google machts möglich^^
     
  10. 6. September 2006
    AW: Dateityp anzeigen

    Andere, bisschen "unprofessionelle" Lösung:

    <?php
    $File = 'datei.jpg';

    $FileType = substr(strlen($File)-3,strlen($File),$File);
    ?>


    Es geht aber nur wenn die Datei-Extension 3 Zeichen hat.. kannst es natürlich auch auf 4 oder 5 oder whatever erhöhen, und dann so machen:

    <?php
    $File = 'datei.jpg';

    $FileType = substr(strlen($File)-3,strlen($File),$File);

    if(strstr($FileType),'jpg')){
    echo 'DateiTyp ist JPG ! ';
    }

    // etc..
    ?>

    mfG^^
     
  11. 6. September 2006
    AW: Dateityp anzeigen

    na komm, wenn schon , dann wenigstens gute.

    PHP:
    <? php

    $file 
    "foobar.txt" ;

    $filetype  substr ( $file strpos ( $file "." )+ 1 );

    if(
    $filetype == "txt" )
       echo 
    "ne textdatei" ;
       
    ?>
     
  12. 6. September 2006
    AW: Dateityp anzeigen

    Joa, so gehts auch
     
  13. 6. September 2006
    AW: Dateityp anzeigen

    Hallo,

    habe esn un gestern schon ganz ähnlich " " gemacht so wie eure Tipps hier

    und zwar so:

    (Quellcode kann ich leider z.Z. nicht zeigen da ich nen neuen Rechner habe und die alten Sachen noch auf der andere HD sind.

    Ich habe einfach in der Datei nach einem Punkt gesucht und dann alles was danach kommt wird ausgegeben.

    Ich denek einfach zu 90% sind Files doch so aufgebaut: <Dateiname>.<Dateityp>

    so kann ich dann auch größe Dateitypen anzeigen und naja es geht

    Ist sicherlich nicht die eleganteste Lösung aber für die Zwecke so ok, Danke aufjedenfall für eure Hilfreichen Tipps. Ich werde sobald ich hier wieder alles am laufen habe auch mal den Quelltext posten.
     
  14. 6. September 2006
    AW: Dateityp anzeigen

    schlechte lösung, die IMO nie in gebrauch sein sollte - was machst du mit "hr. müller rechnung.xls"? mach es mit filetype... so schwer kanns nich sein.
     
  15. 6. September 2006
    AW: Dateityp anzeigen

    Solche Dateien werden bei mir nicht vorkommen, von daher reicht es.

    Zur filetype() funktion. diese gibt mir nich den "header" der Datei aus sondern nur ob es sich um ein "File, dir" oder so handelt. Von daher ist dies die falsche Funktion.

    Ich denke das einfachste wäre wirklich die Dateien über ein Uploadscript und die Datendann in einer MySQL DB zu Speichern mit eben ...['file']['filetyp'] mache (weiss jetzt nicht aus dem Kopf wie das aufgebaut ist
     
  16. 6. September 2006
    AW: Dateityp anzeigen

    shit, mein fehler - meine nicht filetype sondern mime_content_type.
     
  17. 6. September 2006
    AW: Dateityp anzeigen

    Da ich "nur" ein Webspace habe, bzw. für den den ich das mache nur ein Webspace Angebot hat und kein eigenen Server kann ich da auch wohl eigenständig nichts machen. Aber da ich an meinem Server sowas machen kann würd ich natürlich ne Antwort wissen wollen
     
  18. 6. September 2006
    AW: Dateityp anzeigen

    ..du kannst natürlich auch den Mime-type jedesmal neuauslesen, wenn du keine db verwenden möchtest. (Ist halt nur etwas rechenaufwändiger.) Das ginge auch mit der o.g. Funktion.

    Is doch völlig wayne, ob das nun mime_content_type oder ne eigene macht. Z.B mit:

    PHP:
    function  endung ( $name )
    {
     
    $name_feld  explode ( '.' , $name );  //Zerlegen des Namens
     
    return  array_pop ( $name_feld );  //Zurückgeben des letzten Elementes
    }
    würde er immer die "wirkliche" Endung bekommen. (Sofern vorhanden)

    Nuja, dafür musst du dir php selbstkompilieren. Wenn du ned genau weist, wie du das machst fragst du am besten im Linuxforum nach. (oder googlst xD)
    Kurz: (Source ziehen und die dreierregel.^^)
    Code:
    ./configure
    make
    make install
    Beim ./configure dann einfach das --with-mime-magic dahinter schreiben. (Aber das ist nicht das einzige was dahinter stehen sollte.^^)

    Google einfach mal entsprechend deiner Distri.

    greetz blackbone
     
  19. 7. September 2006
    AW: Dateityp anzeigen

    ne, eben nicht! was ist mit meiner oben erwähnten excel-tabelle? viele releases von irgendwelchen warez-groups sind außerdem mit punkten statt leerzeichen getrennt.
    klar, es funktioniert mit string-verarbeitung, aber du musst zugeben, dass das ne richtige "noob-lösung" is. nur, weil n flugzeug räder hat, fährste damit ja nich auf der autobahn
     
  20. 7. September 2006
    AW: Dateityp anzeigen

    Sicher, es ist nicht die beste Lösung. (Auch auch um Punkte Performance sollte die php integrierte Variante vorne liegen.) Aber leider hat das Flugzeug im Moment keine Flügel und ist gezwungen auf der Autobahn zufahren. Denn ohne mime-magic is nüx los mit fliegen. =)

    Ich finde eine funktionierende Lösung immer noch besser als eine nicht funktionierende. Deshalb sollte man evtl. doch mit dem Taxi fahren und eine Funktion nehmen die unabhängig von irgendwelchen php-modulen ist. (oder selbst schreiben)

    Ach btw ich könnte wetten, mime_content_type macht das auch per Stringverarbeitung. Oder glaubst du wirklich die lesen erst den Dateiheader aus? Allzuviele Möglichkeiten gibts ja nich an den mime-type ran zukommen. xD Nur weil die Funktion in php integriert ist, bedeutet dies nicht, dass sie einem komplett anderen Lösungsweg einschlägt. Sie ist meist einfach nur schneller.

    greetz blackbone
     
  21. 7. September 2006
    AW: Dateityp anzeigen

    wenn ich mir die magic.mime in meinem php-verzeichnis anschaue, glaube ich wirklich, dass es so ist. kA :] jedenfalls fahrn wir mitm taxi zum flughafen und machen mit tretrollern autorennen. ok?

    hab übrigens gerade das hier gefunden - sieht gut aus. muss es nachher mal testen.
     
  22. 7. September 2006
    AW: Dateityp anzeigen

    jo, bin ich dabei

    --
    Die Funktion die du gepostet hast liest tatsächlich den Header aus. Das hat ja auch durchaus den Vorteil, dass man ihn schlecht fälschen kann. (Kann schon aber dann wirds sinnlos.^^)

    Das geilste an der Funktion ist aber folgende Zeile:
    PHP:
    $file_content  file_get_contents ( $file );
    Kurze Erklärung:
    Tolle Sache bei 'nem 700MB ISO-Image oder besser noch bei Filmen/DVDs, großen Archiven. xD Am spaßigsten wirds, wenn man das mit nem ganzen Verzeichniss macht und am besten noch mehrere Nutzer gleichzeitig. xD

    Hab die Zeile zu Testzwecken mal durch:
    PHP:
                 $handle  fopen  ( $file "r" );
                 if(!
    feof ( $handle ))
                     
    $file_content  fgets ( $handle );
                 
    fclose  ( $handle );
    ersetzt, hat funktioniert. (Nur das hier nur maximal die ersten 1024Byte gelesen wurden.^^)

    Naja, ich denke, wenn man keine erhöhte Sicherheit braucht, reicht es die Dateiendung zuüberprüfen. Und bei mir gab es zwei mime.magic Datein. Eine mit den Headerinformationen und eine mit den Extentions. xD

    greetz blackbone
     
  23. 7. September 2006
    AW: Dateityp anzeigen

    die dürften sogar ausreichen. alternative wäre fread, obwohl sich das eigentlich nix tut :]

    kann hier nicht eigentlich zu? frage ist ja mehr als geklärt
     
  24. 7. September 2006
    AW: Dateityp anzeigen

    Jau zu erst, Ich mache auch mit beim Trettrollerrennen

    Und dann ein dickes Danke an euch, hier ist dann Schluss kann geschlossen werden
     
  25. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.