tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
618
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hallo!

    Ich möchte meinen Usern gerne die Möglichkeit geben, PDF-Dateien bis 1 MB Größe auf meinen Server laden zu können.

    Allerdings möchte ich mich dabei nur auf PDF-Dateien beschränken, und nichts anderes.
    Kann mir jemand sagen, wie das erreiche?

    MfG
    Jens
     

  2. #2
    empireblue Tutorials.de Gastzugang
    Hallo,

    du kannst mit
    PHP-Code:
    $_FILES['userfile']['type'
    den Dateityp und mit
    PHP-Code:
    $_FILES['userfile']['size'
    die Größe der hochgeladenen Datei abfragen.

    An Hand dieser globalen Variable kannst du alle deine Bediengungen abfangen.

    Alles weitere findest du unter:
    http://www.php.net/manual/de/features.file-upload.php

    Jenser
     

  3. #3
    Lexion Tutorials.de Gastzugang
    Mhh ich glaub so geht das besser:

    Code :
    1
    2
    3
    4
    
    if(substr($_FILES["data"]["name"], -4) == '.pdf') 
    { 
    $check = true; 
    }
     

  4. #4
    Registriert seit
    Jun 2004
    Ort
    Garching b. München
    Beiträge
    602
    Hallo!

    Die Informationen in $_FILES['userfile']['type'] und in $_FILES['userfile']['name'] können leicht gefälscht werden...

    Mamphil
     
    Lösungsvorschlag: Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!

    Artikel & Tutorial: Wie realisiere ich eine Umkreissuche nach Postleitzahlen mit der kostenlosen OpenGeoDB in PHP?

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Meines Wissens beginnen alle PDF-Dokumente mit der Sequenz %PDF-<Versionsnummer>. Demnach könntest du die hochgeladenen Dateien auf diese Sequenz überprüfen.
     
    Markus Wulftange

  6. #6
    Lexion Tutorials.de Gastzugang
    Wo ist jetzt eigentlich noch das Problem? Es gibt ne ganze Reihe Möglichkeiten, jede hat so seine Schwachstellen. Daher gleich mehrere verwenden bzw. ne Funktion bauen.

    Anfangen würd ich mit substr() um meinetwegen .pdf rauszubekommen. Dann würde ich den Mime Type checken. Also so irgendwie:

    PHP-Code:
    // Array mit zugelassenen Mime Typen davor

    $check false;
    foreach(
    $datei_mime as $check1)
        { 
              if(
    $check1 == $_FILES["data"]["type"])  
                  { 
                    
    $check true
                }
        } 
    Oder halt (und) sowas

    PHP-Code:
    function check($var$array
    {
    $check false;
    $allowed substr($var, -4);
            foreach(
    $array as $check1
                { 
                    if(
    $check1 == $allowed
                        { 
                            
    $check true
                        } 
                }
                                    return 
    $check;

     

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Die Dateiendung und den Media-Typen allein zu prüfen, ist – wie Mamphil bereits erwähnte – keine sehr zuverlässige Methode. Denn sobald die Dateiendung auf pdf angepasst wird, sendet zumindest Windows gleich den passenden Media-Type (application/pdf), womit diese Überprüfung auch ausgetrickst wäre.

    Eine hundertprozentige Sicherheit gibt es nicht, es sei denn, jemand verifiziert jede einzelne Datei. Dennoch könnte die Überprüfung des von mir er beschriebenen signifikanten Merkmals eines PDF-Dokumentes die Wahrscheinlichkeit wenn auch nur geringfügig erhöhen.

    Alles in allem wäre es Folgendes:
    PHP-Code:
    <?php

        
    if( isset($_FILES['foobar']) ) {
            
    $isPDF false;
            
    $handle fopen($_FILES['foobar']['tmp_name'], 'r');
            if( 
    $_FILES['foobar']['error'] === UPLOAD_ERR_OK && $_FILES['foobar']['type'] == 'application/pdf' && (bool)preg_match('/^%PDF-[0-9.]+/'fgets($handle)) ) {
                
    $isPDF true;
            }
            
    fclose($handle);
        }

    ?>
     
    Markus Wulftange

Ähnliche Themen

  1. Datei-Upload von mov-Datei klappt nicht
    Von hopsli im Forum PHP
    Antworten: 3
    Letzter Beitrag: 26.07.08, 14:56
  2. Antworten: 2
    Letzter Beitrag: 20.07.06, 11:32
  3. Antworten: 3
    Letzter Beitrag: 01.02.05, 08:05
  4. Antworten: 1
    Letzter Beitrag: 09.12.04, 15:12
  5. Antworten: 2
    Letzter Beitrag: 24.01.04, 14:53