login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Bestandsgrootte controleren

Offline Sweepee - 24/12/2006 02:54 (laatste wijziging 24/12/2006 02:55)
Avatar van SweepeeHTML beginner Hallo,

Ik heb eens een vraagje i.v.m. het uploaden van een bestand.

Met het onderstaande formulier kun je heel simpel eender welk bestand uploaden:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Test</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  6. </head>
  7. <body>
  8. <div id="page">
  9. <h1>Test</h1>
  10. <form action="index.php" method="post" enctype="multipart/form-data"><fieldset>
  11. <legend>Test</legend>
  12. <p><label>File:<input type="file" name="file" /></label><p>
  13. <p><button type="submit">OK</button></p>
  14. </fieldset></form>
  15. <?php
  16. if(is_uploaded_file($_FILES['file']['tmp_name'])) {
  17. echo '<p><pre>';
  18. print_r($_FILES);
  19. echo '</pre></p>';
  20. }
  21. ?>
  22. </div>
  23. </body>
  24. </html>


Het probleem hierbij is, dat wanneer een bestand groter is dan 2MB dan lijkt het of de pagina gewoon refresht en wordt de $_FILES array niet afgedrukt.

Hoe kun je de gebruiker dan duidelijk maken dat het bestand te groot is om te uploaden? Gaat dit met PHP of is er misschien een oplossing in JavaScript?

Groeten, Sweepee.

4 antwoorden

Gesponsorde links
Offline compudoc - 24/12/2006 09:55
Avatar van compudoc PHP beginner misschien door te zeggen >> als het bestand dat je wilt uploaden groter is dan 2MB melding weergeven bestand is te groot:

  1. <?php
  2. if(is_uploaded_file($_FILES['file']['tmp_name'] > 2000)) {
  3. echo 'Helaas het bestand is tegroot om te uploaden';
  4. }
  5. ?>

ik ben ervan uitgegaan dat de groote van het bestand in kb's is.
Offline marten - 24/12/2006 10:41
Avatar van marten Beheerder
Citaat:
Ik ben ervan uitgegaan dat de groote van het bestand in kb's is.


Daar zal ik altijd maar van uitgaan want zo krijg je het ook terug in die superglobal genaamd $_FILES
Offline Sweepee - 24/12/2006 14:48
Avatar van Sweepee HTML beginner compudoc, ik heb de code geprobeerd maar het werkt niet.

Op www.php.net staat uitgelegd hoe je de grootte kunt controleren.

http://be2.php....errors.php

Als $_FILES['file']['error'] gelijk is aan 1, dan is het bestand groter dan wat ingesteld staat in php.ini. Als $_FILES['file']['error'] gelijk is aan 0 dan is alles in orde.

Dit blijkt toch niet volledig te werken precies. Als ik bestanden van 6MB upload, dan wordt die error variabele een 1. Maar, als ik een van +10MB probeer, dan refresht de pagina gewoon. Weird.

Nuja, ik heb toch al iet gevonden om de grootte te controleren :-).

Groeten, Sweepee.

Offline timmie_loots - 25/12/2006 01:27 (laatste wijziging 25/12/2006 01:28)
Avatar van timmie_loots PHP gevorderde Dit is toch weer zo'n geweldig voorbeeld van mensen die niet weten waar ze het over hebben :{

Meneer compudoc komt met een wel heel verschrikkelijk scriptje, dat controleert of een boolean een bestand is dat door de user geüpload is, en beide heren (Marten en compudoc) geven aan dat de variable $_FILES['filename']['size'] de grootte van het bestand in kilobits bevat, terwijl het in werkelijkheid de grootte van het bestand in bytes bevat.

[/rant]

@Sweepee:

Maak van het stukje PHP in het script eens dit:

  1. <?php
  2.  
  3. if(is_uploaded_file($_FILES['file']['tmp_name'])) {
  4. echo '<p>A file was uploaded: <pre>';
  5. print_r($_FILES);
  6. echo '</pre></p>';
  7. }
  8.  
  9. else {
  10. echo '<p>No file uploaded, err_code: ' . $_FILES['file']['error'];
  11. }
  12.  
  13. ?>


Zo kun je zien wat de error precies is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s