PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Dateierweiterung ermitteln (http://www.selfphp.de/forum/showthread.php?t=21728)

juergen 01.07.2009 08:12:36

Dateierweiterung ermitteln
 
Hallo Forum,

ich habe da ein spezielles Problem. Meine Kenntnisse reichen beiweitem nicht aus um hier das Problem zu lösen.

Ich habe auf meiner Seite ein File-UpLoad Formular eingebaut und prüfe es auch auf die Dateierweiterung .pdf, .PDF und application/pdf.
Das funktioniert auch sehr gut.

Wenn ich jetzt aber eine *.exe Datei umbennene in *.pdf so wird diese dann auch ohne murren hochgeladen. Der Grund das sowas gemacht wird ist jetzt mal unerheblich! Es wird bzw. wurde gemacht. Ich möchte das unterbinden und nur PDF-Dateien zulassen.

Kennt einer eine Methode / Funktion in der PHP erkennt das es sich in dem Fall nicht um ein PDF handelt? Es muß gar nicht sein das ich dem User sage was er da hochladen wollte. Das Script soll nur zweifelsfrei erkennen das es eine PDF-Datei ist.

Schon mal vielen Dank für Eure Hilfe.
P.S.
Ich glaube das dieses Problem immer mit File-UpLoad Formularen dahergeht es aber nur wenige erkennen und allen möglichen Mist auf den Webspace geladen bekommen und diesen dann auch noch auf Ihrer Webseite zum Download anbieten und verteilen. So wie bei mir. Ich bin da nur durch Zufall drauf gekommen.

cortex 01.07.2009 08:48:18

AW: Dateierweiterung ermitteln
 
mögliche vorgehensweise: den mime-typ der datei serverseitig auslesen; also nicht den mime-angaben des browsers trauen. dazu kannst du die Fileinfo-Funktionen von php nutzen.

cx

juergen 01.07.2009 10:08:06

AW: Dateierweiterung ermitteln
 
Hallo cortex,

Du meinst das hier?
PHP-Code:

<?php
$finfo 
= new finfo(FILEINFO_MIME);
echo 
$finfo->buffer($_POST["script"]) . "\n";
?>

Oder das hier?
PHP-Code:

<?php
$finfo 
finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo 
finfo_file($finfo$filename) . "\n";
}
finfo_close($finfo);
?>


cortex 01.07.2009 10:23:21

AW: Dateierweiterung ermitteln
 
aus dem handbuch:

1. Beispiel #1 Object oriented style
2. Beispiel #2 Procedural style

http://de.php.net/manual/de/function.finfo-open.php

such's dir aus.-

cx

juergen 01.07.2009 10:44:13

AW: Dateierweiterung ermitteln
 
Hallo cortex,

wenn ich Dich jetzt richtig verstanden habe komme ich mit beiden Varianten an mein Ziel.
Wo liegt denn da der Unterschied?

Was ist für einen File-Upload besser bzw. einfacher?

cortex 01.07.2009 10:54:08

AW: Dateierweiterung ermitteln
 
hallo juergen,

ich hab dir doch schon alles aus dem handbuch herausgesucht. jetzt bist du an der reihe - probier's einfach mal aus.

es gibt doch auch mysql_fetch_assoc( ) vs. mysql_fetch_object( )...

cx

juergen 01.07.2009 18:47:33

AW: Dateierweiterung ermitteln
 
Hallo Cortex,

leider geht das beides nicht bei mir. Ich habe nur eine PHP 4 Version.

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

Aber dennoch Danke für Deine Mühe.

cortex 01.07.2009 18:53:28

AW: Dateierweiterung ermitteln
 
hallo Juergen,

Zitat:

Zitat von juergen (Beitrag 128929)
Ich habe nur eine PHP 4 Version.

verdammt... wie wärs mit einem anständigen webhoster .-

Zitat:

Zitat von juergen (Beitrag 128929)
Aber dennoch Danke für Deine Mühe.

gern geschehen.

cx

DokuLeseHemmung 01.07.2009 19:03:03

AW: Dateierweiterung ermitteln
 
1: Auch dein Provider bietet PHP5! Du hast den Knopf nur noch nicht gefunden
2: Es gibt ja auch noch: http://de.php.net/manual/de/function...ntent-type.php

cortex 01.07.2009 19:05:45

AW: Dateierweiterung ermitteln
 
Zitat:

Zitat von DokuLeseHemmung (Beitrag 128931)
1: Auch dein Provider bietet PHP5! Du hast den Knopf nur noch nicht gefunden

ach so... die 1&1-geschichte, gelle?

Zitat:

Zitat von DokuLeseHemmung (Beitrag 128931)

deprecated...

cx


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:48:54 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.