Avatar billede kischi Novice
01. juni 2010 - 15:35 Der er 12 kommentarer og
1 løsning

upload funktion

hejsa, jeg er igang med at lave en upload funktion i php, men hvor den skal lægge filnavnet i database og en kopi af filen ned i en mapper på serveren, men der er en fejl i min kode et sted. Jeg får en fejlmeddellelse som lyder sådan her:


Notice: Undefined index: filnavn in C:\wamp\www\admin\upload.php on line 23

Notice: Undefined index: filnavn in C:\wamp\www\admin\upload.php on line 24

Og de 2 linjer kode ser sådan ud:

$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../images/{$_FILES['filnavn']['name']} ";

tak

- Kischi
Avatar billede intenz Novice
01. juni 2010 - 16:25 #1
Hedder input elementet du bruger i din formular også 'filnavn'?

Altså:
<input type="file" name="filnavn" />
Avatar billede intenz Novice
01. juni 2010 - 16:26 #2
Alternativt prøv at udskrive indholdet af $_FILES, så kan du nok se hvad der er galt.

print "<pre>";
var_dump($_FILES);
print "</pre>";
Avatar billede kischi Novice
01. juni 2010 - 18:25 #3
Tak for svaret, til dit første spørgsmål så ja, så hedder elementet og filnavn, det ser sådan her ud:

<input name="filnavn" type="file" id="filnavn">

Og til det andet punkt, hvordan udskriver jeg indholdet, i andre ord hvor skal jeg skrive den kode du har skrevet til mig?

håber du kan hjælpe.

- Kischi
Avatar billede dkfire Nybegynder
01. juni 2010 - 18:48 #4
Hvordan ser din <form ... > ud ?
Avatar billede kischi Novice
01. juni 2010 - 18:51 #5
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1">
fil der skal overføres
<input name="filnavn" type="file" id="filnavn">
<br>
<input type="submit" name="Submit" value="overf&oslash;r">
</form>


Var det, det her du mente?
Avatar billede dkfire Nybegynder
01. juni 2010 - 18:52 #6
ja tak, hvordan ser din upload kode ud så ?
Avatar billede kischi Novice
01. juni 2010 - 18:56 #7
<?php

if(isset($_FILES['filnavn']))    {print "Fil der er blevet overført: {$_FILES['filnavn']['name']}<p>\n";
       
$query = "INSERT INTO billeder SET billedenavn='".$_FILES['filnavn']['name']."'";

$result1 = mysql_query($query, $cms) or die(mysql_error());
}

{
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../images/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);

}

?>
Avatar billede dkfire Nybegynder
01. juni 2010 - 20:58 #8
Der er noget i din kode som ikke passer helt, hvor kommer den { som står helt alene ??
Avatar billede kischi Novice
01. juni 2010 - 22:32 #9
Hvad mener du med står helt alene?
Hvor er der noget som står helt alene?
Avatar billede dkfire Nybegynder
01. juni 2010 - 22:49 #10
<?php

if(isset($_FILES['filnavn']))    {print "Fil der er blevet overført: {$_FILES['filnavn']['name']}<p>\n";
     
$query = "INSERT INTO billeder SET billedenavn='".$_FILES['filnavn']['name']."'";

$result1 = mysql_query($query, $cms) or die(mysql_error());
}

{ <<------- Hvad laver den der
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../images/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);

}

?>


Når man har med uploaded filer at gøre, så bruges normalt move_uploaded_file() i stedet for copy().
http://dk2.php.net/move_uploaded_file
Avatar billede kischi Novice
01. juni 2010 - 23:08 #11
åbner den ikke bare så man kan skrive kode imellem { og }, hvis jeg fjærner den kommer der en fejl som hedder:


Parse error: parse error in C:\wamp\www\admin\upload.php on line 27

og den linje er lukningen "}"
Avatar billede dkfire Nybegynder
02. juni 2010 - 09:13 #12
Nej, en { og } bruges til at danne en blok af kode som køres på baggrund af et bolsk udetryk. De bruges bl.a. sammen med if, while- eller forløkker.

Når det så er sagt, så skal du have lige mange { som } i din kode for at det virker.

<?php

if(isset($_FILES['filnavn']))   
{ <<--- denne starter din if blok
    print "Fil der er blevet overført: {$_FILES['filnavn']['name']}<p>\n";
   
    $query = "INSERT INTO billeder SET billedenavn='".$_FILES['filnavn']['name']."'";

    $result1 = mysql_query($query, $cms) or die(mysql_error());

    $tempfile = $_FILES['filnavn']['tmp_name'];
    $destination = "../images/{$_FILES['filnavn']['name']} ";
    move_uploaded_file($tempfile, $destination);

} <<--- Denne slutter din if blok

?>


Koden i din if blok vil nu kun kører hvis din if sætning er sand.
Du bør nok læses lidt mere om kontrol strukturer før du går videre med at programmere.
Avatar billede kischi Novice
25. januar 2011 - 16:39 #13
Tak jeg lukker denne og giver point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester