Beste webmasters
ik heb een php schriptje gemaakt voot foto's upteloaden
maar ik wil dat deze een unieke nama krijgt want als ik nu 2 verschillende fotos upload met de zelde naam
dan lukt dit niet wie kan me helpen alvast dank
PHP Code:
<?php
// als er op submit werd gedrukt
if(isset($_POST['naam'])){
// variabelen
$naam = htmlentities($_POST['naam']);
$afdeling = htmlentities($_POST['afdeling']);
$foto = htmlentities($_POST['foto']);
/* Foto uploaden */
$uploaddir = '../uploads'; // map waar afbeeldingen opgeslagen worden, moet CHMOD 777 rechten hebben (schrijfrechten)
/* Dit CMS is de backend van de site, images worden altijd in de frontend geplaatst, dus moet je ../images gebruiken bij een normale site.*/
$uploadfile = $uploaddir .'/'. basename($_FILES['foto']['name']);
$foto = basename($_FILES['foto']['name']);
// $_FILES['foto']['size'] => grootte in bytes
// $_FILES['foto']['type'] => mime type van het bestand bv) image/jpeg
// $_FILES['foto']['tmp_name'] => Tijdelijke naam in temp folder op de server
// http://www.w3schools.com/media/media_mimeref.asp
// controle of het wel een afbeelding is
if($_FILES['foto']['type'] == "image/jpeg" || $_FILES['foto']['type'] == "image/jpg" || $_FILES['foto']['type'] == "image/gif" || $_FILES['foto']['type'] == "image/png"){
// afbeelding effectief uploaden
if(move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile)){
echo "De foto werd perfect opgeladen ";
}else{
echo "Er is een probleem met uw foto!";
}
}else{
echo "U heeft geen afbeelding opgeladen, gelieve een bestand op te laden met extentie
: jpg, gif, png.";
$foto = "";
}
$query = "INSERT INTO `uploads` (`naam`,`afdeling`,`foto`)
VALUES
('$naam',$afdeling,'$foto')";
mysql_query($query)or die(mysql_error());
echo "de foto werd toegevoegd. <a href='overzicht.php'>Keer terug naar overzicht</a";
?>
<?php }else{ ?>
<!-- enctype="multipart/form-data" is verplicht voor afbeeldingen -->
</h2>
<form action="#" method="post" enctype="multipart/form-data">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="87"></td>
<td width="579"><input type="text" value="Admin" class="cat" name="naam" /></td>
</tr>
<tr>
<td></td>
<td>
<select name="afdeling" class="cat">
<option value="0"> -- upload -- </option>
</select> </td>
</tr>
<tr>
<td>Afbeelding:</td>
<td><input type="file" name="foto" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" class="knopke" value="Toevoegen" /> </td>
</tr>
</table>
</form>
<?php } ?>
- foto uploaden
-
22-11-2010, 20:19 #1
- Berichten
- 320
- Lid sinds
- 14 Jaar
foto uploaden
-
In de schijnwerper
Affilaxy is hét adult affiliate programma van dit moment!PromotieGebruiksklare Managed VPS incl. verhuisservice: v.a. €59,99 per maandHostingMuseum Keuze | 580 musea | DR 29 (ideaal voor linkbuilding)Website te koopDomeinnaam te koop: BatterijVoorBedrijven.nl - Jouw kans op een sterke online aanweziDomein te koop -
22-11-2010, 21:34 #2
- Berichten
- 158
- Lid sinds
- 14 Jaar
Re: foto uploaden
Dit kan niet vermeden worden tenzij er gebruik word gemaakt van "rand()"
Tenminste: rand(); is (vind ik) de makkelijkste
dus bijvoorbeeld:
$naam = rand(1,9999);
Dan krijgt de foto een nummer tussen 1 en 9999, hoe groter het tweede cijfer hoe minder kans er is dat er twee keer hetzelfde nummer word uitgedeelt.
Met gebruik van een mysql database kan er ook worden gedaan dat de al uitgedeelde cijfers in een tabel worden gezet en dat je dan een scriptje maakt dat checkt of het ciijfer al is uitgedeeld.
Ik denk dat dit wel genoeg helpt.
Mvg, Bask Korteweg.
-
22-11-2010, 21:37 #3
- Berichten
- 1.499
- Lid sinds
- 16 Jaar
Re: foto uploaden
Unieke hash toevoegen aan je filename :)
-
22-11-2010, 21:40 #4
- Berichten
- 488
- Lid sinds
- 15 Jaar
Re: foto uploaden
Mogelijk dat dit kan werken:
PHP Code:while(file_exists("upload/" . $name . $type)) {
$teller++;
}
$name = $name . $teller;
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $name . $type);
Weet niet hoe efficiënt dit is. Want als er natuurlijk veel uploads zijn is deze manier niet zo handig.
Groeten,
Tim
-
22-11-2010, 23:30 #5
- Berichten
- 587
- Lid sinds
- 16 Jaar
Re: foto uploaden
Of gewoon de huidige timestamp (time()) gebruiken als filename :)
- Dan ben je ook vrij zeker dat de bestandsnaam uniek zal zijn.
-
23-11-2010, 00:15 #6Elephant Media GbR
- Berichten
- 1.255
- Lid sinds
- 18 Jaar
Re: foto uploaden
Er zijn genoeg oplossingen voor, timestamp zou werken als er maar 1 iemand kan uploaden, maar als je gaat werken met meerdere gebruikers kan dit natuurlijk complicaties opleveren.
Ik zou gebruik maken van de is_file() functie in php, als het een file is dan zet die er een nummer achter, of hij kijkt evt of er al een nummer achter staat en doet er dan 1 bij op.
http://php.net/manual/en/function.is-file.php
-
24-11-2010, 00:14 #7
- Berichten
- 587
- Lid sinds
- 16 Jaar
Re: foto uploaden
Er zijn genoeg oplossingen voor, timestamp zou werken als er maar 1 iemand kan uploaden, maar als je gaat werken met meerdere gebruikers kan dit natuurlijk complicaties opleveren.
Ik zou gebruik maken van de is_file() functie in php, als het een file is dan zet die er een nummer achter, of hij kijkt evt of er al een nummer achter staat en doet er dan 1 bij op.
http://php.net/manual/en/function.is-file.php
Indien je een makkelijke oplossing wil met nog meer zekerheid kan je zelfs de microtime() gaan gebruiken.
Dit is slechts een alternatieve oplossing, zelf gebruik ik ook de file_exists().
- Maar voor een website met matige bezoekersaantallen en een degelijke oplossing die niet veel programmeerkennis vereist is time of microtime een meer dan accepteerbare oplossing.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic