PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php
$target = "music/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "Die Datei ". basename( $_FILES['uploadedfile']['name']). " wurde hochgeladen.";
}
else {
echo "Sorry, das gabs ein Problem mit deiner Datei.";
}
?>
|
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
<?php
class File {
/**
* Das Array der hochgeladenen Datei.
*
* @var Array
*/
private $file;
/**
* Die Sammlung der erlaubten Dateiendungen.
*
* @var Array
*/
private $allowedExtensions = array("mp3");
/**
* Die Sammlung der erlaubten MIME-Types.
*
* @var Array
*/
private $allowedMimeTypes = array("audio/mpeg");
/**
* Setzt die Datei
*
* @param Array $file Die hochgeladene Datei.
*/
public function __construct(array $file) {
if (!empty($file["name"]) &&
!empty($file["type"]) &&
!empty($file["tmp_name"]) &&
isset($file["error"]) &&
!empty($file["size"])) {
$this->file = $file;
} else {
throw new Exception;
}
}
/**
* Gibt zurück, ob die Dateiendung erlaubt ist oder nicht.
*
* @return Boolean True, wenn die Dateiendung erlaubt ist. Ansonsten false.
*/
public function hasAllowedExtension() {
return in_array(end(explode(".", strtolower($this->getFileName()))), $this->getAllowedExtensions());
}
/**
* Gibt zurück, ob der MIME-Type erlaubt ist oder nicht.
*
* @return Boolean True, wenn der MIME-Type erlaubt ist. Ansonsten false.
*/
public function hasAllowedMimeType() {
return in_array($this->getFileType(), $this->getAllowedMimeTypes());
}
/**
* Gibt die erlaubten Dateiendungen zurück.
*
* @return Array Die erlaubten Dateiendungen.
*/
public function getAllowedExtensions() {
return $this->allowedExtensions;
}
/**
* Gibt die erlaubten MIME-Types zurück.
*
* @return Array Die erlaubten MIME-Types.
*/
public function getAllowedMimeTypes() {
return $this->allowedMimeTypes;
}
/**
* Gibt die Datei zurück.
*
* @return Array Die Datei.
*/
public function getFile() {
return $this->file;
}
/**
* Gibt den Dateinamen zurück.
*
* @return String Der Dateiname.
*/
public function getFileName() {
return $this->file["name"];
}
/**
* Gibt den Dateityp zurück.
*
* @return String Der Dateityp.
*/
public function getFileType() {
return $this->file["type"];
}
/**
* Gibt den temporären Namen der Datei zurück.
*
* @return String Der temporäre Name der Date.
*/
public function getFileTmpName() {
return $this->file["tmp_name"];
}
/**
* Gibt einen etwaigen Uploadfehler zurück.
*
* @return String Der etwaige Uploadfehler.
*/
public function getFileError() {
return $this->file["error"];
}
/**
* Gibt die Dateigrösse zurück.
*
* @return String Die Dateigrösse.
*/
public function getFileSize() {
return $this->file["size"];
}
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
try {
$file = new File($_FILES["uploaded"]);
} catch (Exception $e) {
die("Error beim hochladen.");
}
$target = "music/".basename($file->getFileName());
if ($file->hasAllowedExtension() && $file->hasAllowedMimeType()) {
if (move_uploaded_file($file->getFileTmpName(), $target)) {
print "Die Datei ".basename($file->getFileName())." wurde hochgeladen.";
} else {
print "Sorry, da gabs ein Problem mit deiner Datei.";
}
} else {
print "Falsche Dateiendung oder MIME-Type.";
}
}
?>
<form method="post" action="file.php" enctype="multipart/form-data">
<p><input type="file" name="uploaded" size="40"></p>
<p><input type="submit" name="submit" value="Hochladen"></p>
</form>
|