Uploade til et bibliotek som ligger under et andet?
Jeg har været igang med det sammen spørgsmål i en anden tråd http://www.eksperten.dk/spm/597949Men ham som var igang med og hjælpe mig forsvandt ligepluselig :-|
Se koden her under:
<?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 til brug på TEC</h2><BR>
<h5>Hvis du uploader noget, så send mig<BR>
en mail up@duerher.dk:</h5><ul>" . $liste . "</ul>";
} else {
die("Kunne ikke åbne biblioteket: " . $bibliotek);
}
}
function upload_fil($fil, $max_stoerrelse = 9000000, $bibliotek = "default", $filtyper_tilladt = "default") {
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/msword", "application/vnd.ms-excel", "application/exe", "application/x-zip-compressed", "application/octet-stream");
}
if ($fil["size"] > 0) {
$filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
$fra = $fil["tmp_name"];
$til = "uploads/dir".$_POST['overdir']."/dir".$_POST['underdir']."/".$filnavn;
$fil_stoerrelse = filesize($fra)/10240;
$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)) {
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);
}
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Upload fil</legend>
<input type="file" name="upfil" size="30" /><br />
<select name="overdir">
<option>---vælg odir---</option>
<option value="1">Dir 1</option>
<option value="2">Dir 2</option>
<option value="3">Dir 3</option>
<option value="4">Dir 4</option>
</select>
<select name="underdir">
<option>---vælg udir---</option>
<option value="5">Dir 5</option>
<option value="6">Dir 6</option>
<option value="7">Dir 7</option>
<option value="8">Dir 8</option>
</select>
<input type="submit" name="sendknap" value="Upload" />
</fieldset>
</form>
<?php
for($i=1;$i<5;$i++) {
print("Overdir: ".$i);
for($j=5;$j<9;$j++) {
print("Underdir: ".$j);
list_filer("dir".$i."/dir".$j);
}
}
?>
Jeg kan ikke få den til at uploade.
Her kan i prøve og uploade og se hvad der sker: http://www.duerher.dk/uploads/uploads.php
Der skulle også gerne være mulighed for at man, kan gå ind i de forskellige biblioteker, og se hvad der ligger i dem. Og downloade fra dem.
I må også gerne komme med et helt andet script, hvis i har sådan et. Det skal bare helst være uden Mysql.
Jeg er også villig til at give flere point.
/Michal
