Her er en lidt mere udvidet. Det et generelt filupload, der tjekker om filen er den rigtige type, har den rigtige størrelse osv. Bagefter skriver den hvilke filer der er på lager.
Du kan se den her:
http://googolplex.1go.dk/upload.php----------------------------
<?php
/* Funktioner der benyttes */
function list_filer($bibliotek) {
if($bib = @opendir($bibliotek)) {
/**
* Denne syntaks er forklaret i PHP-manualen:
*
http://www.php.net/manual/en/function.readdir.php */
while (false !== ($fil = readdir($bib))) {
if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
$fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
}
}
closedir($bib);
if(is_array($fil_liste)) {
$liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
} else {
$liste = "<li>Ingen filer på lager</li>";
}
return "<h2>Filer på lager:</h2><ul>" . $liste . "</ul>";
} else {
die("Kunne ikke åbne biblioteket: " . $bibliotek);
}
}
function upload_fil($fil, $max_stoerrelse = 100, $bibliotek = "default", $filtyper_tilladt = "default") {
if ($bibliotek == "default") {
$bibliotek = "upload";
}
if ($filtyper_tilladt == "default") {
$filtyper_tilladt = array("image/bmp", "image/jpeg", "image/pjpeg", "image/tiff", "image/png", "image/gif", "application/pdf", "application/zip", "application/arj", "application/x-zip-compressed", "application/octet-stream");
}
if ($fil["size"] > 0) {
$filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
$fra = $fil["tmp_name"];
$til = $bibliotek . "/" . $filnavn;
$fil_stoerrelse = filesize($fra)/1024;
$filtype = $fil["type"];
$fejl = 0;
if (!in_array($filtype, $filtyper_tilladt)) {
echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>";
$fejl = 1;
}
if ($fil_stoerrelse > $max_stoerrelse) {
echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>";
$fejl = 1;
}
if ($fejl == 0) {
if (file_exists($til)) {
$pos = strrpos($filnavn, ".");
$foerpos = substr($filnavn, 0, $pos);
$efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
$i = 2;
echo "<p>Filen '$filnavn' eksisterer allerede i '" . $bibliotek . "' og filen omdøbes derfor til ";
while (file_exists($til)) {
$filnavn = $foerpos . "(" . $i . ")." . $efterpos;
$til = $bibliotek . "/" . $filnavn;
$i++;
}
echo "'$filnavn'</p>";
}
if (move_uploaded_file($fra, $til)) {
echo "<p>Filen '$filnavn' er uploadet!</p>";
return $fil_sti;
} else {
echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
return false;
}
}
} else {
echo "<p>Der er ikke vedhæftet nogen fil!</p>";
}
}
/* Siden starter */
if ($_POST[sendknap]) {
$fil = $_FILES["upfil"];
upload_fil($fil);
} else {
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
Upload fil<br />
<input type="file" name="upfil" size="30" /><br />
<input type="submit" name="sendknap" value="Upload" />
</fieldset>
</form>
<?php
}
echo list_filer("upload");
?>