login  Naam:   Wachtwoord: 
Registreer je!
 Forum

alleen plaatjes

Offline dvon - 26/10/2006 17:42
Avatar van dvonNieuw lid ik doe een ICT opleiding en daarbij moesten we een upload script schrijven.
nu ben ik php erg leuk gaan vinden en ben er thuis ook mee bezig.
nu wil ik graag het uploadscript wat ik van school gekregen heb aanpassen zodat het alleen plaatjes kan uploaden.


dit is het script:
  1. $upFile=$_FILES['userfile']['tmp_name'];
  2. $orFile=$_FILES['userfile']['name'];
  3. $dest='uploads/'.$i.'img'.$orFile;
  4. move_uploaded_file ($upFile,$dest);


lekker kort maja ben nog geen eens 2 weken bezig met PHP dus...
$i is een variabele die per bestand optelt om ervoor te zorgen dat er geen bestanden met dezelfde naam geupload worden =)

help mij aub  

8 antwoorden

Gesponsorde links
Offline Gerard - 26/10/2006 17:54
Avatar van Gerard Ouwe rakker in $_FILES['userfile']['type'] ligt het type opgeslagen.
Daarnaast bevat de $orFile natuurlijk ook een extensie in de bestandsnaam.
Offline dvon - 26/10/2006 18:08
Avatar van dvon Nieuw lid dus dan word het iets in de richting van :

  1. $upFile=$_FILES['userfile']['tmp_name'];
  2. $orFile=$_FILES['userfile']['name'];
  3. if ($ext=='png' or $ext=='jpg')
  4. {
  5. $dest='uploads/'.$i.'img'.$orFile;
  6. move_uploaded_file ($upFile,$dest);
  7. }


als ik het goed begrijp??
Offline rroobb - 26/10/2006 20:50
Avatar van rroobb PHP interesse waar haal je $ext vandaan?
Offline xSc - 26/10/2006 21:52
Avatar van xSc Onbekend $upFile=$_FILES['userfile']['tmp_name'];

heeft niet veel zien. Maak liever gewoon gelijk gebruik van $_FILES['userfile']['tmp_name']

Verder zou ik foutafhandeling toepassen.
Offline dvon - 30/10/2006 10:12
Avatar van dvon Nieuw lid k ben nog niet veel wijzer  
Offline Addow - 30/10/2006 11:15 (laatste wijziging 30/10/2006 11:15)
Avatar van Addow Gouden medaille

PHP beginner
Een handigheidje:

Om eens te zien wat er allemaal meegegeven wordt met een $_FILES-array, doe je het volgende:

  1. echo '<pre>';
  2. print_r($_FILES['userfile']);
  3. echo '</pre>';



Wat je moet doen ivm foutafhandeling:
1. type: check of 't een JPG/PNG/GIF file is, indien niet...
2. dubbelcheck: extensie: ga de bestandsnaam slicen, en haal er de laatste 3 karakters af. Indien die je niet aanstaan-> dumpen
3. Check de grootte: indien boven en bepaalde grootte, kan je bepaalde afbeeldingen weigeren
4. Zoek de bestandsnaam op in de folder waarnaar je de afbeelding gaat uploaden, indien deze al bestaat, zorg je ervoor dat deze nu gaat verschillen van de reeds gevonden. (bvb. door een cijfer achteraan te verhogen)
Let hierbij op dat die nieuw gegenereerde bestandsnaam zich ook nog niet in de folder bevindt.


Indien aan alle voorwaarden voldaan wordt, ga je over tot het verplaatsen van je afbeelding van ['tmp_name'] naar de eigenlijke locatie, zoals in je script ook gedaan wordt.

Let op: MOVEN en ni KOPIËREN eh ;)


Uiteindelijk kan je nog beslissen in de toekomst om afbeeldingen automatisch te gaan verkleinen indien te groot. Maar dan moet je eerst nog enkele weekjes verder staan 
Offline Thomas - 30/10/2006 12:31
Avatar van Thomas Moderator Als je naast een controle op MIME-type en extensie ook een controle doet m.b.v. getimagesize() (die iets oplevert) heb je een redelijke garantie dat je met een plaatje van doen hebt.

Stel namelijk dat je het text-bestand bliep.txt hebt, met als inhoud "bliep", en je deze renamed naar bliep.jpg, dan is dit bestand na uploaden volgens PHP een plaatje (image/jpeg).

Een controle op MIME-type of extensie zal goed gaan terwijl het geen plaatje betreft. getimagesize() biedt in dat geval uitkomst.
Offline Gerard - 30/10/2006 13:10
Avatar van Gerard Ouwe rakker Misschien dat PHP.net: mime_content_type je ook een beetje hierbij kan helpen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.214s