Ik heb hier een formulier voor een CMS. Het is de bedoeling dat de beheerder een bestand van .jpg-formaat kan uploaden. Vervolgens moet de naam van dat bestand in de database geplaatst worden zodat in de online-catalogus die ik nu aan het maken ben, automatisch het juiste plaatje bij het juiste product wordt getoond. Het gaat hier om een online Kunstgallerie om precies te zijn. Dit is de code van het formulier (het gedeelte voor het uploaden dan) :
Dit formulier verwijst dus naar database.php, waar de php code in staat. Die ziet er als volgt uit:
Het bovenste gedeelte is voor de normale formvelden, dit gedeelte werkt al dus dat zit wel goed. Alleen hoe kan ik er nu voor zorgen dat de naam (en het liefst nog de file extentie) in de database wordt geplaatst. Ik heb hier het veld "Foto" aangemaakt. Ik heb al geprobeerd "$HTTP_POST_FILES['userfile']['type']" in het insert statement te plaatsen, dit werkt echter niet.
Wie kan mij helpen? Bvd
PHP:
1
2
3
4
5
| <form action="database.php" method="post" ENCTYPE="multipart/form-data" name="form1" id="form1"> <input type="hidden" name="actie" value="nieuwkunstwerk"> [...] <input name="userfile" type="file" id="userfile"> </form> |
Dit formulier verwijst dus naar database.php, waar de php code in staat. Die ziet er als volgt uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <?PHP mysql_connect("localhost", "root", ""); mysql_select_db("korsman"); if($actie == toevoegen){ $sql = "update Kunstenaars SET Naam='$Naam' WHERE ID = '$_POST[ID]'"; mysql_query($sql) or die (mysql_error()); mysql_select_db("korsman"); } if($actie == nieuwkunstwerk){ $sql = "INSERT INTO Kunstwerken (Artikelnummer, Naam, Kunstenaar, Foto, Aantal, Prijs, Formaat, Techniek, Extra, Oplage, Jaar) VALUES ('$Artikelnummer', '$Naam', '$Kunstenaar', '$Foto', '$Aantal', '$Prijs', '$Formaat', '$Techniek', '$Extra', '$Oplage', '$Jaar')"; mysql_query($sql) or die (mysql_error()); mysql_select_db("korsman"); } $path = "../../pictures/"; $max_size = 200000; if (!isset($HTTP_POST_FILES['userfile'])) exit; if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) { if ($HTTP_POST_FILES['userfile']['size']>$max_size) { echo "Dit bestand is te groot<br>\n"; exit; } if (($HTTP_POST_FILES['userfile']['type']=="image/gif") || ($HTTP_POST_FILES['userfile']['type']=="image/pjpeg") || ($HTTP_POST_FILES['userfile']['type']=="image/jpeg")) { if (file_exists($path . $HTTP_POST_FILES['userfile']['name'])) { echo "Dit bestand staat al op de server, geef het bestand een andere naam.<br>\n"; exit; } $res = copy($HTTP_POST_FILES['userfile']['tmp_name'], $path . $HTTP_POST_FILES['userfile']['name']); if (!$res) { echo "Upload mislukt!<br>\n"; exit; } else { echo "Upload Succesvol!<br>\n"; } echo "Bestandsnaam: ".$HTTP_POST_FILES['userfile']['name']."<br>\n"; echo "Bestandsgrootte: ".$HTTP_POST_FILES['userfile']['size']." bytes<br>\n"; echo "Bestandsformaat: ".$HTTP_POST_FILES['userfile']['type']."<br>\n"; } else { echo "Wrong file type<br>\n"; exit; } } ?> |
Het bovenste gedeelte is voor de normale formvelden, dit gedeelte werkt al dus dat zit wel goed. Alleen hoe kan ik er nu voor zorgen dat de naam (en het liefst nog de file extentie) in de database wordt geplaatst. Ik heb hier het veld "Foto" aangemaakt. Ik heb al geprobeerd "$HTTP_POST_FILES['userfile']['type']" in het insert statement te plaatsen, dit werkt echter niet.
Wie kan mij helpen? Bvd
[ Voor 36% gewijzigd door Verwijderd op 17-10-2003 12:05 ]