PHP 7 | Ein einfacher Fileupload mit PHP
Du bist auf der Suche nach einem Skript für einen Fileupload? Deine Suche ist beendet. Folgend eine sehr gute Lösung.
Das Formular für den Fileupload
Als erste benötigst du ein Standard Formular:
<form action="upload.php" method="post" multipart="" enctype="multipart/form-data">
<input type="file" name="files">
<input type="submit">
</form>
Das Skript für den Upload
Wie im Action des Formulars angegeben, muss das Skript in die upload.php.
$file_name = pathinfo($_FILES['files']['name'], PATHINFO_FILENAME);
$file_extension = strtolower(pathinfo($_FILES['files']['name'], PATHINFO_EXTENSION));
$allowed_file_extension = array('zip', 'gzip');
$max_file_size = 1000*1024; // 1MB
$upload_folder = 'uploads/files/';
$update_path = $upload_folder.$file_name.'.'.$file_extension;
// Abfragen ob erlaubte Endung
if(!in_array($file_extension, $allowed_file_extension)) {
die('Ungültige Dateiendung');
}
// Abfragen ob Datei zu groß
if($_FILES['files']['size'] > $max_file_size) {
die('Datei ist zu groß.');
}
// Abfragen ob Datei schon vorhanden, wenn ja Datum anhängen
if(file_exists($update_path)) {
$new_name = date('Y-m-d-H-i-s');
do {
$update_path = $upload_folder.$file_name.'_'.$new_name.'.'.$file_extension;
}
while(file_exists($update_path));
}
// Wenn alles passt, dann hochladen
move_uploaded_file($_FILES['files']['tmp_name'], $update_path);
echo '<div class="upload-form"><h2>Upload erfolgreich</h2><p><a href="index.php">Neue Datei hochladen</a></div>';
Jetzt nur noch den Ordner „uploads“ erstellen und darin zuerst einen weiteren Ordner „files“ und eine htaccess Datei mit folgendem Inhalt:
Order Deny,Allow
Deny from All
SetHandler none
SetHandler default-handler
Options -ExecCGI
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
Das war’s schon! Viel Erfolg.
Getestet mit PHP 7.2
[maxbutton id=“1″ url=“https://github.com/programmiertipps/fileupload“ text=“Fertige Skript gibt’s auch auf Github“ ]
Weitere Beiträge
Einfacher Besucherzähler für Wordpress als Plugin
Zufälligen Inhalt einer Spalte per TypoScript ausgeben.
TYPO3 - Eine News mit Kategorien über Powermail-Formular erstellen
PHP | MySQL Datenbankverbindung aufbauen mit PDO