login  Naam:   Wachtwoord: 
Registreer je!
 Forum

$_files blijft leeg, indien bestand te groot (Opgelost)

Offline Chupskie - 01/03/2010 10:19 (laatste wijziging 01/03/2010 10:56)
Avatar van ChupskieMySQL beginner Hallo allemaal,

Ik zit met een erg vreemd probleem. Op een website staat een upload script, waarbij pdf en word documenten kunnen worden geupload. Tot nu toe vrij normaal.

Nu het vreemde. Indien er een bestand tot +/- 9mb wordt geupload gaat de upload gewoon goed. Als er een groter bestand, zeg bijvoorbeeld 12mb, wordt geupload dan blijft $_FILES leeg. Er staat dan helemaal geen waarde in.

Tot 9mb:
  1. (
  2. [bijlagefile] => Array
  3. (
  4. [name] => test_bestand.doc
  5. [type] => application/octet-stream
  6. [tmp_name] => /tmp/phpHozfrd
  7. [error] => 0
  8. [size] => 8878592
  9. )
  10.  
  11. )


Vanaf 9mb
  1. (
  2. [bijlagefile] => Array
  3. (
  4. )
  5.  
  6. )


In het htaccess bestand staan de volgende waardes / rules:
  1. php_value upload_max_filesize 18m
  2. php_value max_execution_time 210
  3. php_value post_max_size 18m


En het script bevat gewoon dingen als:
<form id='page' method='post' action='hier mijn link' enctype='multipart/form-data'>
<input type='file' size='30' name='bijlagefile'>

Aangezien de waardes leeg blijven, is het rest van script overbodig, aangezien het toch niet verder komt dan <?php if(!empty($_FILES['bijlagefile']['name'])){ ?>

Iemand enig idee waaraan dit zou kunnen liggen?

edit: Aanvulling, ter extra informatie:
Het script lijkt wel gewoon te uploaden qua tijd (en het groene lopende balkje in IE), en vervolgens na, zeg 2 minuten, geeft hij pas aan dat $_FILES helemaal leeg is. Er komen dus verdere ook helemaal geen foutmeldingen, en het ligt dus ook niet aan bijv. de max. executie tijd.

Alvast bedankt.

Aanvulling 2: Php.net schrijft ook over dit probleem: http://www.php.....php#73762

Fout ontdekt
Dankzij het een zelf aangepaste versie van een scriptje dat in de reacties op php.net stond, namelijk:
  1. <?php
  2. $POST_MAX_SIZE = ini_get('post_max_size');
  3. $mul = substr($POST_MAX_SIZE, -1);
  4. $mul = ($mul == 'M' ? 1048576 : ($mul == 'K' ? 1024 : ($mul == 'G' ? 1073741824 : 1)));
  5. if ($_SERVER['CONTENT_LENGTH'] > $mul*(int)$POST_MAX_SIZE && $POST_MAX_SIZE){
  6.  
  7. echo "Wel fout<br />";
  8.  
  9. echo "Waardes: ".$_SERVER['CONTENT_LENGTH']." en ".$mul*(int)$POST_MAX_SIZE." en ".$POST_MAX_SIZE."<br />";
  10.  
  11. }else{
  12.  
  13. echo "Geen fout<br />";
  14. echo "Waardes: ".$_SERVER['CONTENT_LENGTH']." en ".$mul*(int)$POST_MAX_SIZE." en ".$POST_MAX_SIZE."<br />";
  15.  
  16. }
  17. ?>


Kreeg ik de volgende waardes terug: wel fout | Waardes: 11830725 en 10485760 en 10M

Wat betekende dat POST_MAX_SIZE, niet gewijzigd was via het htaccess bestand, maar nog steeds op 10mb stond wat dus het probleem opleverde.

Ik hoop dat ik hiermee iemand mee heb kunnen helpen, door het plaatsen van deze oplossing.

0 antwoorden

Gesponsorde links
Er zijn nog geen reacties op dit bericht.
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.362s