<?php
/*
* Dette script viser thumbnails i alfabetisk rækkefølge af billeder i en angivet mappe.
* Ved klik åbnes de i original størrelse i et popup-vindue, der automatisk tilpasser sig størrelsen.
* Overskrivning af uploadede filer er ikke mulig.
* Script fra
www.webcafe.dk men modificeret flere steder.
* Hvor skal filerne uploades til? Husk, at webserveren skal kunne
* skrive til dette bibliotek (chmod 777)
*/
$konfiguration["upload_bibliotek"] = "../dinmappe"; //Husk at angive mappenavn sidst i scriptet også
# Hvor mange kilobytes maa filerne fylde per styk?
$konfiguration["max_stoerrelse"] = "500";
# Find extension - for php versions > 4.3:
function get_ext($f) {
$tmp = array_reverse(explode(".",basename($f)));
return $tmp[0];
}
# Checker PHP-version
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
# Udligner forskellene mellem 4.1.x og 4.0.x
# Bemaerk, at disse ikke er "superglobals"
if($minor < 1) {
$_FILES = $HTTP_POST_FILES;
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
if($_FILES["upfil"]["size"] > 0) {
# Hvis der er en fil, saa uploader vi den.
# Foerst slaar vi lige fast, hvor filen skal flyttes fra og til.
# Findes en fil med samme navn stopper vi.
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
if (is_file($til)) {
die("En fil med samme navn findes allerede på serveren. Omdøb venligst din fil.");
}
# Checker lige om filen er for stor til at vi vil acceptere den.
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
die("Desværre - filen er for stor. Jeg accepterer kun " .
$konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
ceil($fil_stoerrelse) . "kb");
}
$valid_types = array("txt","gif","jpg","png","pdf"); //Define file types here
if (!in_array(get_ext($til), $valid_types)) {
die("Ugyldig filtype. Tilladte filtyper er: ".join(", ", $valid_types));
}
if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til);
} else {
copy($fra, $til);
}
header("Location: " . $_SERVER["PHP_SELF"]);
exit;
} else {
# Intet tegn paa upload, saa vi viser bare listen over filer
# og HTML-formularen til nye uploads.
$indhold = listFiler($konfiguration["upload_bibliotek"]);
$indhold .= bygFormular($_SERVER["PHP_SELF"]);
$output = bygSide("List filer", $indhold);
}
function bygSide($titel, $indhold) {
# Pakker indholdet ind i lidt formalia
return '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<html>
<head>
<style type="text/css">
body {height:100%; margin:10px; font-family:arial, verdana, helvetica, sans-serif; font-size:11px;}
li {margin-left:10px;}
a:link{color: #666; text-decoration: none;}a:visited{color: #666; text-decoration: none;}
a:hover{color:#000; text-decoration: underline;}a:active{color: #666666; text-decoration: none;}
.subtitle {font-size:11px;} .title {font-size:14px; font-weight:bold;}
:link:focus, :visited:focus {-moz-outline: none;}
</style>
<script language="JavaScript" type="text/javascript" src="all_javascripts.js"></script>
<title>' . $titel . '</title></head>
<body bgcolor="#ffffff">
' . $indhold . '</body>
</html>
';
}
# Skriver ud til browseren
echo $output;
exit;
function bygFormular($action) {
$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
<table border="0" cellpadding="5" cellspacing="0" style="border:1px solid #000;">
<tr>
<td align="right" bgcolor="#999"><b>Fil til upload:</b></td>
<td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
</tr>
</table>
</form>
';
return "<br /><br /><b>Upload fil: - tilladte filtyper: txt, gif, jpg, png, pdf.</b>" . $formular;
}
function listFiler($bibliotek) {
if($bib = @opendir($bibliotek)) {
$filnavne = array();
while (false !== ($fil = readdir($bib))) { // hent alle filnavne
if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
$filnavne[] = $fil;
}
}
sort( $filnavne ); // her sorteres arrayet alfabetisk efter filnavn
foreach( $filnavne as $fil ) { // udskriv udaf arrayet
list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
$fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" title=\"$fil\" style=\"border:1px solid #333;\"></a>";
}
closedir($bib);
if(is_array($fil_liste)) {
$liste = join(" ", $fil_liste);
} else {
$liste = "Ingen filer...";
}
return "<span class=\"title\">Filer på lager:</span><br />\n"
. "<br />\n"
. "<span class=\"subtitle\">Klik på et billede for at se det i original størrelse.</span><br />\n"
. "<br />\n"
. "$liste";
} else {
die("Kunne ikke åbne mappen: " . $bibliotek);
}
}
# Angiv mappen hvis indhold skal vises som thumbnails.
echo listFiler("../dinmappe");
?>
<!-- Vigtigt: Husk at placere dette javaScript i <head>-sektionen på din webside! // -->
<script language="JavaScript" type="text/javascript">
function popit( fil, w, h ) {
var w = window.open( '', 'billede', 'width='+(w+20)+', height='+(h+20)+',top=50,left=125, scrollbars=no, menubar=no, toolbar=no, status=no, resizable=yes' );
var str = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"
http://www.w3.org/TR/html4/loose.dtd\"><html><head><meta http-equiv=\"imagetoolbar\" content=\"no\"><title>Klik på billedet for at lukke vinduet</title></head><body><img src=\""+fil+"\" onclick=\"window.close()\" onmouseover=\"this.style.cursor='pointer';\" alt=\"\" title=\"Klik for at lukke vinduet\"></body></html>";
w.document.open();
w.document.write(str);
w.window.status = "Klik på billedet for at lukke vinduet";
w.document.close();
}
</script>