ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
618
618
EMPFEHLEN
-
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
-
12.06.05 14:38 #2empireblue Tutorials.de Gastzugang
Hallo,
du kannst mit
den Dateityp und mitPHP-Code:$_FILES['userfile']['type']
die Größe der hochgeladenen Datei abfragen.PHP-Code:$_FILES['userfile']['size']
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
-
12.06.05 17:28 #3Lexion Tutorials.de Gastzugang
Mhh ich glaub so geht das besser:
Code :1 2 3 4
if(substr($_FILES["data"]["name"], -4) == '.pdf') { $check = true; }
-
Hallo!
Die Informationen in $_FILES['userfile']['type'] und in $_FILES['userfile']['name'] können leicht gefälscht werden...
MamphilLö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?
-
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
-
12.06.05 20:18 #6Lexion 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:
Oder halt (und) sowasPHP-Code:// Array mit zugelassenen Mime Typen davor
$check = false;
foreach($datei_mime as $check1)
{
if($check1 == $_FILES["data"]["type"])
{
$check = true;
}
}
PHP-Code:function check($var, $array)
{
$check = false;
$allowed = substr($var, -4);
foreach($array as $check1)
{
if($check1 == $allowed)
{
$check = true;
}
}
return $check;
}
-
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
-
Datei-Upload von mov-Datei klappt nicht
Von hopsli im Forum PHPAntworten: 3Letzter Beitrag: 26.07.08, 14:56 -
PHP Upload beschränken und vordefinieren
Von ronin im Forum PHPAntworten: 2Letzter Beitrag: 20.07.06, 11:32 -
Bei Datei Upload überprüfen ob Datei schon existiert...
Von stonk im Forum PHPAntworten: 3Letzter Beitrag: 01.02.05, 08:05 -
Datei-Upload / Datei wird nicht verschoben
Von folio im Forum PHPAntworten: 1Letzter Beitrag: 09.12.04, 15:12 -
error.log datei in der Grösse beschränken
Von Rios im Forum PHPAntworten: 2Letzter Beitrag: 24.01.04, 14:53





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren