Billedupload - hvorfor virker det ikke
Jeg har lavet et script til upload af billeder - men kan bare ikke greje, hvorfor det ikke virker.Siden kalder sig selv - og den overordnede if-sætning afgør, om formularen skal vises eller filen uploades. Upload-feltet kaldes "filnavn".
Variablen $filfolder giver følgende resultat, når den echoes ud:
/customers/WEBSTED.de/WEBSTED.de/httpd.www/finale/designs/fullsize/25.jpg og efterfølges af "fejl i overførsel - sletter post igen". Tallet 25 relaterer sig til en primary key i en database - og burde være god nok.
Der hvor den fejler, er altså i move_uploaded_file($filnavn, $filfolder)-linien - men hvorfor?
Attributter på folderen er iøvrigt også sat til 777
<?php
$filnavn = $_FILES['filnavn'];
$vaerknavn = $_POST['vaerknavn'];
$kategori = $_POST['kategori'];
$pris = $_POST['pris'];
if (!$filnavn) { ?>
<form action="<?=$PHP_SELF;?>" method="post" enctype="multipart/form-data" name="uploadformular">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="126"> </td>
<td width="174" class="bloktekst">Ved brug af knappen herunder, kan du uploade dit design. Efter upload, åbnes en ny side, hvor du kan placere almindelig vrøvletekst på en måde, du finder hensigtsmæssig. </td>
</tr>
<tr>
<td class="bloktekst">Filsti</td>
<td><input name="filnavn" type="file" class="bloktekst"></td>
</tr>
<tr>
<td class="bloktekst">Værknavn</td>
<td class="bloktekst"><input name="vaerknavn" type="text" id="vaerknavn"></td>
</tr>
<tr>
<td> </td>
<td><span class="bloktekst">
<font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">
<input type="submit" name="send" value="Send" border="0">
</font> </span></td>
</tr>
</table>
</form>
<? } else {
require("connect.php");
echo $vaerknavn."<br>";;
echo $kategori."<br>";
echo $pris."<br>";
// Et design er angivet? Læg dette til upload
// Først opretter vi en reference i databasen. Dette gøres først, så vi kan afgøre, hvilket filnavn, det skal ha'
if (mysql_query("INSERT INTO element (vaerknavn, kategori_id, priskategori) VALUES ('$vaerknavn', '$kategori', '$pris')")) {
// Ja, success - hent så sidste det netup skrevne ELEMENT_ID - så ved vi nemlig, hvad filen skal hedde
$nyestepost = mysql_query("SELECT element_id FROM element ORDER BY element_id DESC LIMIT 1");
$billednavnarray = mysql_fetch_array($nyestepost);
$billednavn = $billednavnarray['element_id'];
$filfolder = $_SERVER['DOCUMENT_ROOT']."/finale/designs/fullsize/".$billednavn.".jpg";
echo $filnavn . " " .$filfolder;
if ( move_uploaded_file($filnavn, $filfolder) ) { echo "Filen blev overført"; }
else { mysql_query("DELETE FROM element WHERE element_id = '$billednavn'");
echo "Fejl i filoverførsel - sletter post igen";
} // Fjern databaseskrivningen igen - der er åbenbart sket en fejl
} else {
// Der skete en fejl i databaseskrivningen - hmm....
echo "Der kunne ikke skrives til databasen - er felterne udfyldt?!?";
}
} ?>
