Anders K. Madsen skrev:
>
> > Når du skriver at billedefilen skal sendes via serveren, troede jeg
du
> > mente, at billedet skulle uploades til selve serveren - og blive dér.
> >
>
> Nej, det behøver ikke blive der, men det er vel lige så let, hvis du
> alligevel skal bruge det senere. Så slipper du for selv at uploade det
> manuelt senere.
>
> > I den e-mail som jeg modtager, er billedefilen angivet som
> > /srv/www/htdocs/web10/phptmp/phpuwsNBEimage/pjpegplader.jpg
>
> Jeps, det er billedets tmp-placering på serveren.
> Det er altså en god ide at læse den artikel på webcafe, som jeg linkede
> til tidligere.
> Prøv f.eks. først at lave et script hvor du bare uploader billedet og
> viser det i browseren, sådan "upload et billede til serveren og se
det".
>
> Når det virker, så er du kommet et skridt videre mod målet....
Hmmm.
I den artikel du henviser til på webcaféen, har jeg forsøgt mig med det
eksempel der er dér, og justeret mappe-angivelsen:
<?php
$konfiguration["upload_bibliotek"] = "auktioner/billeder";
/* Hvor mange kilobytes maa filerne fylde per styk? */
$konfiguration["max_stoerrelse"] = "100";
/**
* 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. Der acceptereres kun " .
$konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
ceil($fil_stoerrelse) . "kb.<p>Klik på 'Tilbage'-knappen i din
browser, og prøv igen.");
}
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("hej", $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">
<div align="right"><a href="./">Til forsiden</a></div>
' . $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);
}
}
?>
- og det fungerer da også - NÆSTEN. Hvis jeg uploader et billeder som er
for stort, kommer den rigtige advarsel op, men uploader jeg et billede,
som opfylder kravene får jeg følgende fejlmeddelelse:
Warning: move_uploaded_file(auktioner/billeder/camera_no.gif): failed to
open stream: Permission denied in
/srv/www/htdocs/web10/html/webdesign/clients/togauktion/auktionsoprettels
e_test.php on line 50
Warning: move_uploaded_file(): Unable to move
'/srv/www/htdocs/web10/phptmp/phpJLCf3M' to
'auktioner/billeder/camera_no.gif' in
/srv/www/htdocs/web10/html/webdesign/clients/togauktion/auktionsoprettels
e_test.php on line 50
Warning: Cannot modify header information - headers already sent by
(output started at
/srv/www/htdocs/web10/html/webdesign/clients/togauktion/auktionsoprettels
e_test.php:16) in
/srv/www/htdocs/web10/html/webdesign/clients/togauktion/auktionsoprettels
e_test.php on line 55
:: Jeg har rettet i ovenstående linieangivelse, så de refererer til de
aktuelle linier i koderne øverst. ::
\Ohlzen
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials