Zo moeilijk is het niet, de vraag is alleen of het verstandig is. Gebruik maken van een simpel filesysteem is veel efficienter/sneller en logischer dan zulke data in een database zetten.
Arjan, met een marksysteempje is het toch niet handig alles los te laten staan... Het wordt geen fotoalbum. Of wil je voor elke advertentie een nieuwe map maken, dan kan het wel ja.
Hier heb ik even wat geknutseld. Heb niet getest, maar denk dat het wel werkt.
<html>
<head>
<title>Afbeelding uploaden</title>
</head>
<body>
<?
#Ik neem aan dat het nummer van de advertentie meegegeven is met POST onder de naam advertentieid, en de locatie naar het bestand in de variabele file
$locatie = "map/"; #directorie (CHMOD 777) met slash aan het eind
if (isset($_POST['advertentieid']) AND isset($_POST['file'])){ #checken of er wel een id en een plaatje is verstuurd
if (is_numeric($_POST['advertentieid'])){ #checken of het idnummer wel nummeriek is (tegen hackers etc.)
$advertentieid = $_POST['advertentieid']; #het nummer van de advertentie ophalen
$file = pathinfo($_FILES['file']['name']); #een array met informatie over het plaatje opvragen
$ext = $file['extension']; #de extensie van het plaatje opvragen
if ($extension=="jpg" OR $extension=="JPG" OR $extension=="jpeg" OR $extension=="JPEG"){ #kijken of de extensie wel jpg, JPG, jpeg of JPEG is
$maximalegrootte = ; #het aantal bytes dat de afbeelding maximaal mag zijn
if ($_FILES['file']['size']<$maximalegrootte){ #controleren of de afbeelding niet te groot is
move_uploaded_file($_FILES['file']['tmp_name'], $locatie.$advertentieid.".jpg"); #het plaatje uploaden in de aangegeven map, met als bestandsnaam het idnummer.jpg
$username = ""; #gebruikersnaam van de mysql database
$password = ""; #wachtwoord van de mysql database
$hostname = ""; #de hostnaam van de mysqldatabase (vaak localhost)
$database = ""; #de mysqldatabase (vaak hetzelde als de username)
$connection = mysql_connect($hostname,$username,$password); #verbinding maken met de mysqldatabase
$db = mysql_select_db($database,$connection); #de databasekiezen
$tabel = ""; #de tabel waar de urls naar de plaatjes in worden opgeslagen
$idveld = ""; #de naam van de kolom waar het idnummer in staat
$urlveld = ""; #de naam van de kolom waar de url naar het plaatje in moet komen
$actie = ""; #'vervangen' als er al een rij is aangemaakt met het idnummer, 'maken' als er nog geen rij is aangemaakt met dat idnummer
if ($actie=="vervangen"){ #kijken of de actie vervangen is
$query = "UPDATE ".$tabel." SET ".$urlveld." = '"$locatie.$advertentieid.".jpg' WHERE ".$idveld." = '".$advertentieid."'"; #een mysql query maken
$result = mysql_query($query); #de mysql query uitvoeren
}
if ($actie=="maken"){ #kijken of de actie maken is
$query = "INSERT INTO ".$tabel." ('".$idveld."','".$urlveld."') VALUES ('".$advertentieid."','".$locatie.$advertentieid.".jpg')"; #een mysql query maken
$result = mysql_query($query); #de mysql query uitvoeren
}
print("<p><img src=\"".$locatie.$advertentieid.".jpg\"></p><p>Uw afbeelding is geupload.</p>"); #het upgeloade plaatje laten zien
}
else{
print("<p>Uw afbeelding is ".$maximalegrootte-$_FILES['file']['size']." bytes te groot. De maximale grootte is ".$maximalegrootte." bytes.</p>"); #een melding geven als het plaatje te groot is
}
else{
print("<p>Uw afbeelding heeft de verkeerde extensie. Goedgekeurde extensies zijn:</p><p><ul><li>.jpg</li><li>.JPG</li><li>.jpeg</li><li>.JPEG</li></p>");
}
}
else{
print("<p>Het idnummer van de advertentie moet nummeriek zijn.</p>");
}
}
else{
print("<p>Er missen enkele variabelen.</p>");
}
?>
<form action="<? print($_SERVER['SCRIPT_NAME']); ?>" target="_self" method="POST" enctype="multipart/form-data">
<input type="hidden" name="advertentieid">
<p><input type="file" name="file"></p>
<p><input type="submit" value="Uploaden"></p>
</form>
</body>
</html>