login  Naam:   Wachtwoord: 
Registreer je!
 Forum

probleempje met extensies

Offline Rooonald - 17/06/2006 14:31
Avatar van RooonaldHTML interesse Hallo,

Ik heb een script gemaakt dat foto's plaatst bij berichten, het id van het bericht is gelijk aan de naam van de foto. de Thumbnail heeft gewoon de normale naam maar de volledige foto is het id plus _big.extensie erachter. De extensie is .jpg.

Echter komt het weleens voor dat de foto na het uploaden .JPG is ipv .jpg. aangezien het script hoofdlettergevoelig is werken dan de afbeeldingen niet. Is daar een oplossing voor zodat het script geen onderscheid maakt tussen hoofdletters en kleine letters?

Onderstaand stukje code is om de grote afbeelding aan te roepen:

  1. echo "<a href=\"FILES/big/" .$_GET['prod']. "_big.jpg\" rel=\"lightbox\"><img border=\"0\" src=\"FILES/small/" .$_GET['prod']. ".jpg\" alt=\" ".$x." \"></a><br>

8 antwoorden

Gesponsorde links
Offline Tuinstoel - 17/06/2006 15:11
Avatar van Tuinstoel PHP expert
  1. <?php
  2. $sExt = (file_exists('blaalbaa.JPG')) ? 'JPG' : 'jpg';
  3. ?>

Gewoon kwestie van kijken of het bestaat. Maar volgensmij maakt html geen onderscheid tussen JPG en jpg, php idem?
Offline b4nkr0bz0r - 17/06/2006 15:12
Avatar van b4nkr0bz0r PHP gevorderde php.net:strtolower hier kan je een string lowercase mee maken, bij het uploaden moet je de extensie dus al lowercase maken.
Offline Rooonald - 17/06/2006 15:20 (laatste wijziging 17/06/2006 15:43)
Avatar van Rooonald HTML interesse Dat is wellicht wel t gemakkelijkste, onderstaand script is mijn uploadscript, hoe zou dat er dan uit komen te zien om de extensie om te zetten naar lower case? Tevens wilde ik het script nog eens aanpassen zodat er enkel .jpg bestanden geplaatst kunnen worden.

  1. <?php
  2.  
  3. $config['map'] = "FILES/big/"; //aanpassen
  4.  
  5. function upload_size( $size, $maxm="200000" ) { //maxm wijzigen
  6. if( $size > $maxm ) {
  7. error( 'Je file is te groot!' );
  8. }
  9. }
  10.  
  11. function error( $error, $exit=TRUE ) {
  12. echo $error;
  13. if( $exit == TRUE ) {
  14. exit;
  15. }
  16. }
  17.  
  18. function bestaat_al( $naam ) {
  19. if( file_exists( $naam ) ) {
  20. error( 'De file-naam bestaat al/Of je hebt niets ingevuld!' );
  21. }
  22. }
  23.  
  24. if( isset($_POST['uploaden']) ) {
  25. upload_size( $_FILES['upload']['size'] );
  26. bestaat_al( $config['map'] . $_FILES['upload']['name'] );
  27. move_uploaded_file( $_FILES['upload']['tmp_name'], $config['map'] . $_FILES['upload']['name'] );
  28. echo 'Je plaatje is geupload!<br>
  29. <a href="FILES/big/'.$_FILES['upload']['name'].'">Zie je file</a><br>
  30. ';
  31. } else {
  32. ?>
  33. <form method="post" enctype="multipart/form-data" name="upload">
  34. <table>
  35. <tr>
  36. <td>File:</td>
  37. <td><input type="file" name="upload" id="upload"></td>
  38. </tr>
  39. <tr>
  40. <td>Upload:</td>
  41. <td><input type="submit" name="uploaden" value="uploaden"></td>
  42. </tr>
  43. </table>
  44. </form>
  45. <?
  46. }
  47. ?>


Medewerker edit
Even de code-tag correct afgesloten .

Offline Tuinstoel - 17/06/2006 15:46
Avatar van Tuinstoel PHP expert move_uploaded_file( $_FILES['upload']['tmp_name'], $config['map'] . $_FILES['upload']['name'] );

move_uploaded_file(strtolower($_FILES['upload']['tmp_name']),$config['map'].$_FILES['upload']['name']);

Dan zal het hele bestand kleine letters bevatten. Wil je dit niet dan moet je het bestand eerst opsplitsen in extensie en in de naam. Dan doe je strtolower() op de extensie en dan etc...
Offline Rooonald - 17/06/2006 15:56
Avatar van Rooonald HTML interesse Dan zal de bestandnaam idd gescheiden moeten worden van de extensie. De bestandsnamen zijn een combinatie van hoofdletters en cijfers namelijk... Hoe splits ik dat het beste?
Offline b4nkr0bz0r - 17/06/2006 16:01
Avatar van b4nkr0bz0r PHP gevorderde
  1. <?php
  2. // We selecteren de laatse 3 tekens...
  3. $sExtensie = strtolower(substr($_FILES['upload']['name'], 0, -3));
  4.  
  5. if ($sExtensie == 'jpg')
  6. {
  7. move_uploaded_file( $_FILES['upload']['tmp_name'], $config['map'] . $sExtensie );
  8. }
  9. else
  10. {
  11. //Error handling
  12. }
  13. ?>

Offline Rooonald - 17/06/2006 17:25 (laatste wijziging 19/06/2006 20:59)
Avatar van Rooonald HTML interesse en hoe zet ik dat in mijn script? ik heb al diverse dingen geprobeerd maar de hoofdletters blijven gewoon na t uploaden. Niemand een idee?
Offline Thomas - 20/06/2006 11:30
Avatar van Thomas Moderator Het is makkelijker om je thumbs (of grote plaatjes) een prefix te geven -thumb_whatever.jpg- in plaats van een postfix -whatever_thumb.jpg, omdat je in het laatste geval de bestandsnaam in stukken moet gaan hakken.

Je kunt natuurlijk ook een aparte folder aanleggen voor thumbs en/of grote plaatjes, dat werkt doorgaans nog makkelijker.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s