login  Naam:   Wachtwoord: 
Registreer je!
 Forum

explode

Offline Stefan14 - 18/09/2005 17:31
Avatar van Stefan14PHP gevorderde Ik wil graag een bestandsnaam kunnen splitsen van de extensie. nou geloof ik dat dat moest met explode. maar hoe werkt dat nou precies?

dus als je bijv test.php hebt, dat je dan 2 variabelen daarvan kunt maken. namelijk: test en .php

10 antwoorden

Gesponsorde links
Offline rambo - 18/09/2005 17:33
Avatar van rambo HTML beginner
  1. <?php
  2. $sNaam = "test.php";
  3. $aExplode = explode(".", $sNaam);
  4. $sExtensie = $aExplode[count($aExplode)-1];
  5. echo $sExtensie; // zou de extensie moeten geven
  6. ?>
Offline NCube - 18/09/2005 17:37 (laatste wijziging 18/09/2005 17:37)
Avatar van NCube HTML beginner
  1. <?
  2. $bestandsnaam = "pagina.php";
  3. $ext = explode( ".", $bestandsnaam );//$ext is nu een array met de waardes pagina en php
  4. $ext = end($ext);//Dit selecteert de laatste waarde van de array, php in dit geval
  5. ?>
Offline Stefan14 - 18/09/2005 17:45 (laatste wijziging 18/09/2005 17:46)
Avatar van Stefan14 PHP gevorderde ik heb nu dit:

  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2. <table>
  3. <tr><td>Bestand</td><td><input type="file" name="bestand"></td><td>* mag niet groter zijn dan 1 mb</td></tr>
  4. <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
  5. <tr><td>Naam</td><td><input type="text" name="naam" maxlength="50"></td></tr>
  6. <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
  7. <tr><td>&nbsp;</td><td><input type="submit" name="submit" value="Uploaden"></td></tr>
  8. </table>
  9. </form>
  10.  
  11. <?php
  12.  
  13. if(isset($_POST['submit']))
  14. {
  15.  
  16. //variabelen aanmaken
  17. $user_id = 10;
  18. $bestand_naam = ($_POST['naam']);
  19. $datum = date("j-n-Y");
  20. $tijd = date("H:i:s");
  21.  
  22. $query="INSERT INTO bestanden (user_id, bestand_naam, datum, tijd) VALUES ('".$user_id."', '".$bestand_naam."', '".$datum."', '".$tijd."')";
  23. (mysql_query($query));
  24.  
  25.  
  26. //id aanmaken voor bestand
  27.  
  28.  
  29. //kijken of er een bestand is geselecteerd
  30. if(isset($_FILES['bestand']))
  31. {
  32.  
  33.  
  34. $bestandsnaam = ($_POST['bestand']);
  35. $ext = explode( ".", $bestandsnaam );//$ext is nu een array met de waardes pagina en php
  36. $ext = end($ext);//Dit selecteert de laatste waarde van de array, php in dit geval
  37.  
  38. //als het bestand groter is dan 1048576 bytes(1 mb) word hij niet toegelaten
  39. if($_FILES['bestand']['size'] > 1048576)
  40. {
  41. echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegestaan is <b>1048576 bytes</b>";
  42. }
  43.  
  44. else
  45. {
  46. //het bestand uploaden
  47. move_uploaded_file($_FILES['bestand']['tmp_name'], '../Bestanden/' .$id.'.'.$ext);
  48. }
  49. }
  50. else
  51. {
  52. echo "Selecteer een bestand";
  53. }
  54.  
  55.  
  56. }
  57. ?>



maar dit wil nog niet werken. de . doet hij wel, maar de extensie wil hij er nog niet achter zetten.

de bedoeling van dit script is dat het bestand wat geupload wordt, dat de bestandsnaam vervangen wordt door het id van de database. en dat de extensie wel hetzelfde blijft.
Offline NCube - 18/09/2005 17:47
Avatar van NCube HTML beginner
  1. <?
  2. $bestandsnaam = $_FILES['bestand']['name'];
  3. $ext = explode( ".", $bestandsnaam );//$ext is nu een array met de waardes pagina en php
  4. $ext = end($ext);//Dit selecteert de laatste waarde van de array, php in dit geval
  5.  
  6. //als het bestand groter is dan 1048576 bytes(1 mb) word hij niet toegelaten
  7. if($_FILES['bestand']['size'] > 1048576)
  8. {
  9. echo "Het bestand is <b>" . $_FILES['bestand']['size'] . "</b>, het maximale toegestaan is <b>1048576 bytes</b>";
  10. }
  11.  
  12. else
  13. {
  14. //het bestand uploaden
  15. move_uploaded_file($_FILES['bestand']['tmp_name'], '../Bestanden/' .$id.'.'.$ext);
  16. }
  17. }
  18. else
  19. {
  20. echo "Selecteer een bestand";
  21. }
  22. ?>

Bovenste regel veranderd
Offline Stefan14 - 18/09/2005 17:50 (laatste wijziging 18/09/2005 17:51)
Avatar van Stefan14 PHP gevorderde hij werkt nu wel, dat wil zeggen. de extensie wordt er goed achter gezet, maar nu zou hij het niet kunnen/mogen verplaatsen. de map heeft alle rechten (777)

is er nog iets anders waar dit aan zou kunnen liggen. de parser zegt dat de fout in regel 49 zit. de regel met move_uploaded_file dus.
Offline Button - 18/09/2005 17:55 (laatste wijziging 18/09/2005 18:00)
Avatar van Button PHP ver gevorderde wat jij doet is het verplaatsen naar enkel een bestand niet?
je moet het volledige path ingeven:
bv.
  1. <?
  2. $upfile= 'c:\\blabla\\scripts\\'.$id.'.'.$ext;
  3.  
  4. move_uploaded_file($_FILES['bestand']['tmp_name'], $upfile);
  5. ?>


edit : srry had niet gezien dat je '../Bestanden/ er had bij staan.maar zet het toch allemaal maar eerst eens in een variabele en zet het dan daar, dat maakt het al een stuk duidelijker


Offline Stefan14 - 18/09/2005 18:31 (laatste wijziging 18/09/2005 18:33)
Avatar van Stefan14 PHP gevorderde hij doet het nog steeds niet, ik heb de volgende code

  1. <?php
  2. $locatie = 'http://www.uploadarchief.com/Bestanden/'.$id.'.'.$ext;
  3.  
  4. move_uploaded_file($_FILES['bestand']['tmp_name'], $locatie);
  5. ?>



en hij geeft deze foutmeldingen

Warning: move_uploaded_file(http://www.uploadarchief.com/Bestanden/35.txt) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in /home/uploadar/domains/uploadarchief.com/public_html/upload.php on line 63

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpzn0G1i' to 'http://www.uploadarchief.com/Bestanden/35.txt' in /home/uploadar/domains/uploadarchief.com/public_html/upload.php on line 63

btw, als ik voor die variabele een . zet in regel 5 dan geeft hij een foutmelding dat die . daar niet hoort. dus dat is wel goed op dit moment lijkt mij.

ik zie niet wat er fout is aan deze code.
Offline NCube - 18/09/2005 18:42
Avatar van NCube HTML beginner
  1. <?php
  2. $locatie = 'Bestanden/'.$id.'.'.$ext;
  3.  
  4. move_uploaded_file($_FILES['bestand']['tmp_name'], $locatie);
  5. ?>
Offline Stefan14 - 18/09/2005 18:46
Avatar van Stefan14 PHP gevorderde hij doet het nu! jullie zijn top!

harstikke bedankt, hier kan ik wel wat mee.
Offline lasdesigner - 18/09/2005 18:49
Avatar van lasdesigner PHP beginner Mooi zo:) Hier heb ik ook nog wat aan gehad!

[Off]
Poef, is een hoofdletter nou zoveel werk? Na een ! of een . of een ? o.i.d komt een hoofdletter.
[/off]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.308s