Verfasst von Alice am 04.06.2008 - wurde schon 12838 mal gelesen
Dateiupload
Datei
PHP
Tutorial
Loading...
![]()
<?php // Grafixx Dateiupload
session_start(); // startet die Session
//---------------------- Logindaten --------------------------------- //
$grafixx_name = "USERNAME"; // Loginname angeben
$grafixx_pass = "PASSWORT"; // Loginpasswort angeben
//------------------------------------------------------------------ //
//--------------------- Upload-Einstellungen --------------------------------- //
$maxsize = "1048576"; // Maximale Uploadgroesse (1 MB)
$uploaddir = "images/"; // Upload Ordner
$allowed_files = array(".jpg", ".gif"); // Erlaubte Dateien
// --------------------------------------------------------------------------- //
ob_start(); // startet den Ausgabepuffer
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Grafixx - Dateiupload || The easy way to upload files </title>
<meta http-equiv="Content-Language" content="de" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
</head>
<body>
<div id="ram">
<h1 id="header">Grafixx - Dateiupload <small>The easy way to upload files ...</small>
</h1>
<br />
<?php
$pfad = $_SERVER['PHP_SELF']; // generiert aktueller Pfad zur Datei
// -------------------------------- Logout --------------------------------------
if (isset($_GET['action']) AND ($_GET['action'] == 'logout')){
session_unset();
session_destroy(); //Session zerstoeren
header("Location: $pfad"); // Weiterleitung
}
// ------------------------------------ Login ---------------------------------------
if (!isset($_SESSION['login'])){
if(isset($_POST['admin_login'])) { //sofern Login gedrueckt
if(empty($_POST['admin_name']) OR empty($_POST['admin_pass'])) { // Pruefen ob alle Felder ausgefuellt
$message .= 'Bitte geben Sie ihren Usernamen ein ... <br />'; $error = "1"; // Fehler
}
// Pruefen ob Zugangsdaten korrekt
if(($_POST['admin_name'] != $grafixx_name) OR ($_POST['admin_pass'] != $grafixx_pass)){
$message .= 'Zugriff verweigert ... <br />'; $error = "1"; // Fehler
}
if($error != "1"){ // Wenn kein Fehler
// session handle-----------------------------
$_SESSION['login'] = $_SERVER['REMOTE_ADDR'];
header("Location: $pfad"); // Weiterleitung => Eingeloggt
}
if($error == "1"){ // Fehlermeldung ausgeben
echo "<div class=\"error\"><h1>Error ...</h1>\n <p>$message</p></div>";
}
} // LoginFormular ausgeben
?>
<form action="" method="post">
<fieldset style="width: 300px">
<legend>Login</legend>
<label for="user">Username: </label>
<input type="text" name="admin_name" style="width: 250px" />
<label for="passwort">Passwort: </label>
<input type="password" name="admin_pass" style="width: 250px" />
<br /><br />
<input type="submit" value=" Login " name="admin_login" />
</fieldset>
</form>
<?php
} //------------------------------------- Login ENDE -----------------
//------------------- Wenn eingeloggt ------------------------------------------------
if(isset($_SESSION['login'])){
// Funktion um die Maximale Dateigroesse uebersichtlich in KB/MB/GM darzustellen
function grafixx_size($datei_size, $nachkommastellen = 0) {
$d_size = $datei_size;
if($d_size >= 1073741824){ // wenn groeser als 1073741824 Byte - GB ausgeben
return round($d_size/(1073741824), $nachkommastellen)." GB";
}
if($d_size >= 1048576){ // wenn groesser als 1048576 Byte - MG ausgeben
return round($d_size/(1048576), $nachkommastellen)." MB";
}
if($d_size >= 1024){ // wenn groesser als 1024 Byte - KB ausgeben
return round($d_size/(1024), $nachkommastellen)." KB";
}
return $d_size." Byte";
}
if(isset($_POST['submit'])){ // Wenn Submit gedrueckt wurde
// Pruefen ob input'image' nicht leer ist
if(empty($_FILES['file']['tmp_name'])) {
$message.= 'Bitte Danke eine Datei angeben ... <br />'; $error = "1"; // Fehler
}else{
if(isset($_FILES['file']['tmp_name'])){ $tmp_name = $_FILES['file']['tmp_name']; } // Originaler Dateiname
if(isset($_FILES['file']['name'])){ $name = $_FILES['file']['name']; } // Originalname
if(isset($_FILES['file']['size'])){ $size = $_FILES['file']['size']; } // Groee der Datei
if(isset($_FILES['file']['type'])){ $type = $_FILES['file']['type']; } // MIME Type der Datei
echo $_FILES['file']['name'];
$datei_typ = strrchr($_FILES['file']['name'], "."); // Dateieindung herausfiltern
// Pruefen ob die Datei erlaubt ist
if(in_array($datei_typ, $allowed_files)){
// Pruefen ob die Dateigroesse passt / keine leere Datei ist
if($size <= $maxsize && $size!=0){
$newname = md5(uniqid(rand())); // Der Datei einen neuen einmaligen Namen verpassen
// Datei in Verzeichnis kopieren
if(move_uploaded_file($tmp_name, $uploaddir.$newname.$datei_typ)){
echo "<h2>Die Datei wurde erfolgreich hochgeladen...</h2>";
echo "<p><strong>Dateigroesse:</strong> ".grafixx_size($size)."<br />\n";
echo "<strong>MIME-Type:</strong> ".$type." <br /><br />\n";
echo "<strong>Datei ansehen =></strong>\n";
echo "<a href='".$uploaddir.$newname.$datei_typ."' target=\"_blank\">".$uploaddir.$newname.$datei_typ."</a></p>\n";
$okay = "yes";
}else{ // Wenn Datei nicht ins angegebene Verzeichnis kopiert werden konnte
$message .= 'Datei konnte nicht verschoben werden ... <br />';
$error = "1"; // Fehler
}
}else{ // Wenn Datei zu gross ist
$message .= "Die Datei <strong>".$name."</strong> ist schwerer als die erlaubten ".grafixx_size($maxsize)." ... <br />";
$error = "1"; // Fehler
}
}else{ // Wenn Dateityp nicht erlaubt ist
$message .= "Der Dateityp der Datei <strong>".$name."</strong> ist nicht gestattet ...<br />";
$error = "1";
}
} // close (empty($_POST['images']))
if(isset($error) && ($error == "1")){ // Fehlermeldungen ausgeben
echo "<div class=\"error\"><h1>Error ...</h1>\n <p>$message</p></div>";
}
} // close submit gedrueckt Wenn nicht submit gedrueckt
if(!isset($okay)){ // wenn nicht okay -> Formular ausgeben
?>
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Dateiupload</legend>
<label>Datei:
<input type="file" name="file" id="file" /></label>
<p>
<strong>Erlaubte Dateitypen:</strong>
<?php foreach($allowed_files AS $name){ echo "$name "; } /* erlaubt Dateitypen auflisten */ ?>
<br />
<strong>Maximale Dateigroesse:</strong>
<?php echo grafixx_size("$maxsize", 2); /* Maximale Dateigroesse ausgeben */?>
</p>
<input type="submit" value="Datei Hochladen" name="submit" />
</fieldset>
</form>
<?php } // close !okay
}// close eingeloggt
?>
<h3>Grafixx - Dateiupload <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?>
<?php
// Admin Logout --------------------------------------
if(isset($_SESSION['login'])){ // Wenn eingeloggt
echo "| <a href=\"$pfad?action=logout\">logout</a>";
} ?>
</h3>
</div>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...