Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Dateiendung einer Datei bestimmen? Antworten
Dateiendung einer Datei bestimmen?

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

ich hab folgenes Script:

Datei auswählen:<input type='file' name='uploadfile'>

$dat=substr("$uploadfile",-3,3);

echo "$dat und $uploadfile";

Ich bekomme immer für $dat die Dateiendung "tmp" angezeigt! Für $uploadfile erhalte ich immer den Pfad C:\WINDOWS\TEMP\php45.tmp angezeigt.

Was stimmt denn an diesem Script nicht???

Vielen Dank!


  Profil   E-Mail   Editieren   Zitieren

skc.tiddy
Otto-Normal-Poster


Beiträge: 81



  Profil   Website   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

ok hab ich gelesen und auch gecheckt. Nur ich will ja automatisch die Dateiendung auslesen und dann dranhängen lassen. Bei mir können halt User beim Hochladen selber Dateinamen vergeben und da will ich, dass die Dateiendung dann automatisch gespeichert wird und nicht die User selber angeben müssen.

Mit echo "$uploadfile_type"; erhalte ich ja z.B. immer text/html ich will ja dann nur html! Oder auch bei PHP Dateien erhalte ich immer text/html.

Ich will aber nur einfach z.B. .php, .html oder auch .gif!!

Vielen Dank

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


$_FILES['userfile']['name']

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Hallo,

geht mir auch nicht richtig. Wie müßte ich denn die Datei richtig einbinden???

<form method="POST" action="<?=$php_self?>" enctype="multipart/form-data">
Datei auswählen:
<input type='file' name='uploadfile'><br>
Dateiname:
<input type="text" name="dateiname" maxlength="40"><br><br>
<input type="submit" name="verschicken" value="Speichern">
</form>

Wie kann ich jetzt von $uploadfile die Dateiendung richtig erkennen??? Ich komme einfach nicht drauf!

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


substr($_FILES['uploadfile']['name'], -3, 3);

Wobei das nur bei Dateien mit einer Endung von 3 Zeichen Läge geht. Ansonsten müsstest du gerade ne RegEx machen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

flotschi1981
Fachidiot


Beiträge: 114


Ja super vielen Dank........

  Profil   E-Mail   Editieren   Zitieren

skc.tiddy
Otto-Normal-Poster


Beiträge: 81


mach dir doch nen array mit den dateitypen:

1: 
2: 
3: 
4: 
5: 
6:
$type = array(
   'image/jpeg' => 'jpg',
   'image/gif' => 'gif',

);


wäre wohl die edelste lösung. gleichzeitig lässt du dadurch nur best. dateitypen zu.

---
...blah.

  Profil   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Warum is das die endelste Lösung? Riesen Arbeit alle MIME-Typen rauszusuchen und wenn man alle Dateitypen zulassen will was dann?

---
Take a look here!
Lichtblick - Einblick - Ausblick

Diese Nachricht wurde geändert von: languitar
  Profil   E-Mail   Website   Editieren   Zitieren

Yhoko
Otto-Normal-Poster


Beiträge: 47


Ganz einfach:

if( empty( $type[$mime] ) )
{
$ext = substr( $file_name, -3, 3 );
} else {
// Hier Dateitypen-Array checken
}


Es *ist* die edelste Lösung.

---
(HackV1) (Spirits) (Galaxy) (YDK) (Anhalter)

  Profil   Website   Editieren   Zitieren

SammyXp
Pixelschubser


Beiträge: 2


Alles viel zu umständlich:

http://de2.php.net/manual/de/function.pathinfo.php

Gruß
SammyXp

  Profil   E-Mail   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


SammyXp schrieb am 22.03.2006 11:01
Alles viel zu umständlich:

http://de2.php.net/manual/de/function.pathinfo.php


zu umstaendlich, kostet nur unnoetig ressourcen.

Yhoko schrieb am 09.08.2004 04:21
Ganz einfach:

if( empty( $type[$mime] ) )
{
$ext = substr( $file_name, -3, 3 );
} else {
// Hier Dateitypen-Array checken
}


Es *ist* die edelste Lösung.


die loesung ist nicht edel, sie ist eingeschraenkt, da gibt es deutlich bessere.

http://de3.php.net/strrchr
http://de3.php.net/strrpos

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben