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

[ERLEDIGT] Upload-Beschränkungen bei File-Upload

jakestyler

Mitglied
Hallo,
ich baue einen File-Upload.
Dieser sollte png, jpg, gif, tiff, svg, pdf, html, php, js, css, txt und .doc-Dateien hochladen können (Keine Angst wegen PHP: Das kann in dem Verzeichniss nicht ausgeführt werden).

Bis jetzt habe ich folgendes:

CODE ENTFERNT

Leider habe ich mit PHP nicht so viel Erfahrung und bekomme es jetzt einfach nicht hin, die File-Types zu beschränken.
Ich weiß dass das irgendwie mit Mime-Types funktioniert, aber nach einem halben Tag googlen bin ich mit meinem Latein am Ende.

Was muss ich mit dem Script machen, dass nur die oben angegebenen File-Types akzeptiert werden?

Danke schonmal im Voraus! :)
 
Zuletzt bearbeitet:
nach einem halben Tag googlen bin ich mit meinem Latein am Ende.
Also, wenn ich bei google
php upload nur bestimmte dateitypen
eingebe, dann bekomme ich
Ungefähr 6.230.000 Ergebnisse
Das sollte eigentlich reichen, oder?

$_FILES['datei']['type'] Diese Variable enthält den MIME-Type der Datei. Damit solltest du mal etwas experimentieren und dir anzeigen lassen, wenn du die unterschiedlichen Dateitypen uploadest. Zusätzlich kannst du noch mit Hilfe der Extension prüfen, was aber nicht wirklich sicher ist.
 
bdt600 war schneller *lach*

Edit:
Achja... $HTTP_POST_FILES ist obsolet! Warum nutzt du das überhaupt noch, wenn du es weiter unten eh schon richtig ($_FILES) machst?
 
Also dass Ding ist das: Ich habe in dem halben Tag googlen so viel gefunden, konnte es leider nicht umsetzten.
Ich bekomm's einfach nicht gebacken.

@CPCoder - Ist geändert.
 
Ich bekomm's einfach nicht gebacken.
$_FILES['datei']['type'] Diese Variable enthält den MIME-Type der Datei. Damit solltest du mal etwas experimentieren und dir anzeigen lassen, wenn du die unterschiedlichen Dateitypen uploadest. Zusätzlich kannst du noch mit Hilfe der Extension prüfen, was aber nicht wirklich sicher ist.
Was hast du daran nicht verstanden???
PHP:
<h1>Upload</h1>

<form
  action="<?php echo $_SERVER['SCRIPT_NAME']; ?>"
  method="post"
  enctype="multipart/form-data">
<input type="file" name="filename" />
<input type="submit" value="Los!" />
</form>
<hr />
<?php
  if (isset($_FILES['filename'])) 
  {
     print_r($_FILES);
  }
 ?>
 
Ich habe jetzt das, was allerdings garnichts ausgibt:

$file_type = $_FILES['userfile']['type']; //returns the mimetype


$allowed = array("image/jpeg", "image/gif", "image/png", "image/png", "text/php", "text/html", "application/octet-stream", "application/x-apple-diskimage");


if(!in_array($file_type, $allowed)) {
echo 'Only jpg, gif, and pdf files are allowed.';
echo 'yes';
}
 
Was sollte da auch ausgegeben werden, wenn ein passender Typ per Upload geschickt wird?
 
Du meinst also, wenn ein falscher Typ ankommt, dann soll kein move_uploaded_file aufgerufen werden? OK, exit geht auch, warum auch nicht gleich mit dem Hammer dazwischen hauen. Andere lösen das einfach mit einem if/else
 
Wenn du schon an einem einfachen if/else scheiterst, solltest du dringends die Grundlagen lernen oder die Finger von PHP lassen.
 
Für alle die den Thread irgednwann mal finden:

PHP:
$file_type = $_FILES['userfile']['type']; //returns the mimetype




$allowed = array("image/jpeg", "image/gif", "image/png", "text/php", "text/html", "text/css", "text/txt");




if(!in_array($file_type, $allowed)) {
echo "Sorry, but we don't support that file-type."; 


 }


elseif(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $new_file_name)){
        $long_url = "http://url/$newfile";
        $bitly = bit_ly_short_url($long_url);
        echo "Your file is now available for 24h: <a href='$bitly'>$bitly</a>";
}
    else{
        echo "Sorry, no file for you.";
        }
    }
 
Zurück
Oben