login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unieke naam voor upload

Offline copyfile - 14/12/2007 19:19
Avatar van copyfileNieuw lid Ik heb onderstaand upload script. Nu zou ik alleen graag willen dat de geuploade file een nieuwe, unieke naam krijgt. B.v. de datum van vandaag en een paar random cijfers om er zeker van te zijn dat de file nog niet bestaat. Hoe zou ik dit moeten doen ? Want heb eigenlijk zelf geen idee op dit moment. Alvast bedankt !

http://www.plaatscode.be/4471/

16 antwoorden

Gesponsorde links
Offline markpieper - 14/12/2007 19:23 (laatste wijziging 14/12/2007 19:23)
Avatar van markpieper HTML beginner if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
$locatie.$_FILES['afbeelding']['name']))

Verander dit naar :
if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
time().'jpg'));
Offline copyfile - 14/12/2007 20:33
Avatar van copyfile Nieuw lid Krijg dan deze error's :

Warning: move_uploaded_file(1197660781jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /public_html/upload.php on line 22

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpNa04F1' to '1197660781jpg' in /public_html/upload.php on line 22
het bestand kan niet worden verplaatst
Offline Gerard - 14/12/2007 20:34
Avatar van Gerard Ouwe rakker Ik denk dat je chmod dan niet goed in orde is. Chmod de mappen even zodat je er mag schrijven.
Offline copyfile - 14/12/2007 20:50
Avatar van copyfile Nieuw lid Nee die heeft gewoon de goede rechten...
Offline nielsvdwal - 14/12/2007 20:53 (laatste wijziging 14/12/2007 20:56)
Avatar van nielsvdwal PHP gevorderde if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
time().'jpg'));

moet:

if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],
time().'.jpg'));

worden.. anders komt er geen punt voor jpg 


edit: kon je eigenlijk al makkelijk in de warning zien:

Warning: move_uploaded_file(1197660781jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /public_html/upload.php on line 22

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpNa04F1' to '1197660781jpg' in /public_html/upload.php on line 22
het bestand kan niet worden verplaatst
Offline markpieper - 14/12/2007 21:41
Avatar van markpieper HTML beginner Sorry, stomme fout van mij. Je moet trouwens nog kijken of het een .jpg, of een .gif bestand is.
Offline copyfile - 14/12/2007 21:43
Avatar van copyfile Nieuw lid Sorry dat ik het vraag maar hoe zou dat dan moeten gebeuren ? En eventueel de mogelijkheid ook andere extenties toe te voegen ?

Thanks !
Offline Bart - 14/12/2007 21:49
Avatar van Bart PHP expert Volgens mij kan je de extensie niet veranderen. Dit zou je even moeten nalezen op php.net. Je kan ook even de zoekfunctie gebruiken hier en dan zoeken naar "uploaden". 100% dat je dan wat vind. Ik heb hier laatst ook zo'n script + uitleg gevonden.
Offline markpieper - 14/12/2007 22:33
Avatar van markpieper HTML beginner Je leest de extensie af van de bestandsnaam. Explode de bestandsnaam, neem de laaste deel van de array, en kijk of dat overeen komt met jpg jepg gif ed. Sla dat op in bijvoorbeeld $ext. Bij het opslaan doe je dan time().'.'.$ext
Offline Bart - 14/12/2007 22:36
Avatar van Bart PHP expert Omdat bestandsnamen ook zo kunnen zijn: "bestandsnaam.datum.tijd.ext"
kun je dit doen:
  1. <?php
  2. $array = explode(".", $je_file);
  3. $ext = array_pop($array); // hiermee pakt ie automatisch het laatste deel van de array
  4. ?>
Offline copyfile - 14/12/2007 22:53 (laatste wijziging 14/12/2007 22:58)
Avatar van copyfile Nieuw lid Het is ondertussen gelukt. Heb even verder gezocht en een prima script gevonden op de buren van phpfreakz.

Bedankt voor de hulp !! :

http://www.phpfreakz.nl/library.php?sid=25136

[/edit]
Toch nog even een vraagje over dit script. Het werkt prima als ik dit als dir neem :
$m_cnfg['upload_dir'] = $_SERVER['DOCUMENT_ROOT'] . "/uploads"; // upload dir

Maar ik wil eigenlijk niet dat hij in de map "uploads" alles zet maar gewoon in de root, de public_html dus gewoon. Hoe doe ik dit want het weghalen van "uploads" werkt niet. Ik krijg dan onderstaande error :
Upload failed for
Dir error: /home/host/domains/site.nl/public_html/
Offline Bart - 14/12/2007 23:12
Avatar van Bart PHP expert
  1. $m_cnfg['upload_dir'] = 'images/avatars'; // oid lijkt mij de simpelste manier
Offline copyfile - 14/12/2007 23:48
Avatar van copyfile Nieuw lid Ik ben er mee bezig geweest maar krijg het daar nog niet mee voor elkaar. De bedoeling is dat hij gewoon in de root upload zegmaar en dus niet in een andere map die in de root ligt.
Offline markpieper - 15/12/2007 09:27
Avatar van markpieper HTML beginner $m_cnfg['upload_dir'] = './' Probeer dit eens
Offline copyfile - 15/12/2007 14:18
Avatar van copyfile Nieuw lid Ook dat werkt helaas niet. Vaag dat dit allemaal niet lukt 
Offline finduilas - 17/12/2007 12:04
Avatar van finduilas PHP gevorderde Bovendien kun je op extensie controleren met:
  1. $_FILES['bestand']['type'] == "image/gif"

of
  1. //controle extensie
  2. if(!eregi("((.gif|.jpg|.JPG|.GIF)$)", $screen))
  3. {
  4. echo "Screen ".$i." is niet van het juiste type";
  5. }


Voor het uploaden heb ik al eens een functie gemaakt:
  1. function upload_file($van,$naam) {
  2. $map = '../images/';
  3. $naar = $map.$naam;
  4. if(file_exists($naar)) {
  5. return false;
  6. }
  7. elseif(!move_uploaded_file($van, $naar)) {
  8. return false;
  9. }
  10. else {
  11. return true;
  12. }
  13. }


en bij het aanroepen is de van de ['tmp_name'].
Natuurlijk ga je nog wat moeten aanpassen maar bij mij werkt het zo.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.402s