hjælp til billed-upload i PHP - dreamweaver
Hej, Jeg er PHP-newbie. Håber der er nogen som kan hjælpe?1. har kopieret en kode fra en anden tråd på eksperten. Den fungerer egentligt ok og uploader et jpeg-billede i et bibliotek jeg har oprettet på min server. Men der er noget galt, når jeg har trykket på Upload og siden skal genindlæses, så får jeg en blank side? Hvorfor? Hvordan kan det undgåes? Jeg genindlæser jo upload_billede.php, ikke?
2. udover vil jeg gerne skrive billednavnet til min SQL-database som hedder billeddatabase, så jeg kan kalde det frem senere. Hvordan lyder koden dertil?
Min kode ser således ud:
<?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"] = "./upload_bibliotek";
/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "30";
/**
* 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);
}
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("upload_billede", $indhold);
}
/**
* Skriver ud til browseren
*/
echo $output;
exit;
/**************************************************\
** Hjaelpefunktioner **
\**************************************************/
function bygSide($titel, $indhold) {
/**
* Pakker indholdet ind i lidt formalia
*/
return '<html>
<head><title>' . $titel . '</title></head>
<body bgcolor="#ffffff">
' . $indhold . '</body>
</html>
';
}
function bygFormular($action) {
$formular = '<form action="' . $action . '" method="post" enctype="multipart/form-data">
<table border="1" cellpadding="5" cellspacing="0">
<tr>
<td align="right" bgcolor="#999999"><b>Fil til upload:</b></td>
<td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
</tr>
<tr>
<td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
</tr>
</table>
</form>
';
return "<h2>Upload fil:</h2>" . $formular;
}
function listFiler($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);
}
}
?>