Her er du koden:
PS. Det er et shareware uploadscript som jeg selv har rettet lidt i. Det har virket, og jeg er 99,9% sikker på at jeg ikke har lavet ændringer i det før det så pludselig ikke virkede.
<div class="titel">Upload foto - 2</div>
<div class="content">
<?php
/**
* Simpelt script der tager imod et filupload og lister
* filer i upload-biblioteket.
*
* Scriptet er et eksempel til en artikel paa WebCafe.dk:
*
*
http://www.webcafe.dk/artikler/php/upload/*/
/**
* Hvor skal filerne uploades til?
* Husk, at webserveren skal kunne skrive til dette bibliotek
*/
$konfiguration["upload_bibliotek"] = "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'];
/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "1024";
/**
* 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.
*/
$fra = $_FILES["upfil"]["tmp_name"];
$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
/**
* Checker lige om filen er for stor til at vi vil acceptere den.
* Vi bruger ceil() i stedet for round(), saa vi ikke faar den skoere
* situation, at fejlmeldingen siger, at filen er for stor, men angiver
* samme stoerrelse for filen og den oevre graense.
*/
$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");
}
if(function_exists("move_uploaded_file")) {
move_uploaded_file($fra, $til);
} else {
copy($fra, $til);
}
/*****************/
// Max height and width
$max_width = 450;
$max_height = 450;
$size = getimagesize($til);
$width= $size['0'];
$height = $size['1'];
Header("Content-type: image/jpeg");
// Proportionally resize the image to the
// max sizes specified above
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if( ($width <= $max_width) && ($height <= $max_height) )
{
$tn_width = $width;
$tn_height = $height;
}
elseif (($x_ratio * $height) < $max_height)
{
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else
{
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
ini_set('memory_limit', '32M');
$src = ImageCreateFromJpeg($til);
$dst = ImageCreateTrueColor($tn_width, $tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
ImageJpeg($dst,$til,100);
$thumbw = ($tn_width / 6);
$thumbh = ($tn_height / 6);
$newwidth = ($width / 6);
$newheight = ($height / 6);
$thumbsrc = ImageCreateFromJpeg($til);
$thumbdst = ImageCreateTrueColor($thumbw, $thumbh);
ImageCopyResized($thumbdst, $thumbsrc, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageJpeg($thumbdst,$konfiguration["upload_bibliotek"] . "/thumbs/" . $_FILES["upfil"]["name"],100);
if (is_file("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"])){
$link = mysql_connect("localhost", "sphingidae_dk", "zFQvShLv")
or die("Could not connect: " . mysql_error());
if (!$link){echo "ikke forbundet";
exit();}
$db = mysql_select_db(sphingidae_dk);
if (!$db){echo "ikke forbundet";
exit();}
$g_total = mysql_query("select count(ID) as total from foto WHERE tur='" . $_GET['aar'] . "' AND uploader='" . $_COOKIE['userid'] . "'") or die(mysql_error());
$total = mysql_result($g_total,0);
$nytnavn = ($total+1) . ".jpg";
$uploader = $_COOKIE['userid'];
$aar = $_GET['aar'];
rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/" . $nytnavn);
rename("foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $_FILES["upfil"]["name"] . "", "foto/" . $_GET['aar'] . "/" . $_COOKIE['userid'] . "/thumbs/" . $nytnavn);
$mysql = "INSERT INTO foto (`id`, `uploader`, `tur`, `filnavn`) VALUES ('', '$uploader', '$aar','$nytnavn')";
mysql_query($mysql) or die(mysql_error());
}
echo "Dit billede er nu uploadet<br>";
echo "<a href='?side=fotos&tur=" . $aar . "&uploader=" . $uploader . "'>Se Galleri</a>";
exit;
mysql_close($link);
} else {
$indhold = bygFormular($_SERVER["REQUEST_URI"]);
$output = bygSide("Upload foto", $indhold);
}
echo $output;
exit;
function bygSide($titel, $indhold) {
return '<html>
<head><title>' . $titel . '</title>
<link rel="stylesheet" type="text/css" href="../css/x.css">
</head>
<body bgcolor="#ffffff">
' . $indhold . '</body>
</html>';
}
function bygFormular($action) {
$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
' . $_GET['id'] . '<br>
<input type="file" name="upfil" value=""><br><br>
<font color="red"><b>VIGTIGT!</b></font>
<p>
<ul>
<li>Billedet skal være af typen .jpg eller .jpeg
<li>Billedfilen må max fylde 1 MB (1024 KB)
<li>Hvis noget uforudset hænder kontakt da Morten med det samme.
</ul>
<input type="submit" value="upload">
</form>';
return $formular;
}
}
?>
</div>