• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Nur bestimmte Dateitypen bei Upload annehmen

Hallo-Welt

Aktives Mitglied
Hallo allerseits,

Ich habe mir ein PHP-Scribt zusammengebastelt, das hochgeladene Bilder in einem Unterverzeichnis abspeichert. Das Problem ist nur, dass der Uploader egal welche Dateien hochladen kann. Wie kann ich dem Scribt sagen, dass es nur png-Bilder annehmen soll? Kann mir da villeicht jemand weiterhelfen?

Ich danke schon mal für Antworten
 
Zuletzt bearbeitet:
Hmm... Da hab ich nur folgendes gefunden:
PHP:
<?php

        if($_FILES['image']['error'] == 0){
            // success - move uploaded file and process stuff here

        }else{
            // 'there was an error uploading file' stuff here....    
        }
?>
So werden aber alle Bildformate erlaubt.
Wie kann ich nur png erlauben, jpeg und gif aber verbieten?
 
Also der header hat damit nichts zu tun.

Ich kann dir nur mal den Tipp geben, dass du nach dem type welches in $_Files drin steht gehst. Kannst dir $_Files ja mal ausgeben nachdem du was hochgeladen hast.

Dann lädst du ne png und eine jpeg hoch und schon kannst du den unterschied sehen und darauf deine if Bedingung aufbauen.

Ansonsten könnte man das sicher auch nach dem Namen machen, denn ich glaube der Name zeigt auch die dateiendungen an. Also sollte es möglich sien das du prüfst ob die dateiendung .png ist.
 
Okay Danke für den Tipp. Sieht dann so aus:
PHP:
<?php

echo "<pre>";
print_r(pathinfo("/example/test.txt"));
echo "</pre>";

$path=array(PATHINFO_EXTENSION);
foreach ($path as $value)
echo "<pre>".pathinfo("/example/test.txt",$value)."</pre>";
?>
Dann müsste ich ja aber noch hintendran hängen:
PHP:
if .pathinfo("/example/test.txt",$value). $path ('png')
blablabla
else 
echo "Error";

Wie genau kann ich denn abfragen, ob es mit png endet? Ausgelesen hab ich sie ja jetzt...
 
Oh danke. Den else-Befehl muss ich aber sicher auch noch schriben, nicht? Dann also so:
PHP:
 <?php

echo "<pre>";
print_r(pathinfo("/example/test.png"));
echo "</pre>";

$path=array(PATHINFO_EXTENSION);
foreach ($path as $value)
echo "<pre>".pathinfo("/example/test.png",$value)."</pre>";

if(pathinfo('/example/test.png',$value) == 'png') {
    
header("location: exampe.html");}
else {echo "Error";
}
?>
Ist das so okay?
 
Nein, siehe #11

<edit>Ups, eine zeitliche Überschneidung der Beiträge</edit>
 
Zurück
Oben