2012-07-08 48 views
1

大我有這種形式文件上傳處理超過10MB的PHP

<table class="table"> 
     <div class="error"><?php if(!empty($errors))echo output_errors($errors);?></div> 
     <form action = "upload_music.php" method = "POST" enctype = "multipart/form-data"> 
     <tr> 
      <td>Artist:</td> 
      <td><input type="text" name="artist" value=""></td> 
     </tr> 
     <tr> 
      <td>Track Name:</td> 
      <td><input type="text" name="track_name" value=""></td> 
     </tr><?php print_r($_FILES);?> 
     <tr> 
      <td>Genre:</td> 
      <td> 
      <?php 
       $genres = Genre:: getAllGenre(); 
      ?> 
       <select name = "genre"> 
        <?php 
         for($i = 0 ; $i<count($genres);$i++){ 
         ?> 
         <option value = "<?php echo "{$i}"?>"><?php echo "{$genres[$i]['genre']}";?> </option> 
        <?php } 

        ?> 
       </select> 
      </td> 
     </tr> 
     </tr> 
      <td>Track:</td> 
      <td><input type='file' name='file_path'></td> 
     </tr> 

     <tr> 
      <td>Track Description:</td> 
      <td><textarea name="track_desc" rows ="5"></textarea></td> 
     </tr> 
     <tr> 
      <td><input class="btn btn-success" type="submit" name = "submit" value="Upload"></td> 
     </tr> 
     <form> 
    </table> 

當用戶將上傳的軌道。每當我上傳一個大於7MB的文件時,print_r($_FILES);就會打印一個空數組。但是當我上傳一個低於8mb的文件或一個mp3時,print_r($_FILES);會打印一個包含值的數組。

我猜測一些文件沒有被$ _FILES讀取,因爲它們的大小大於8mb?如果是這種情況,我會如何上傳大於8MB的文件?也是我與問候發佈和上傳文件php.ini設置看起來像這樣

post_max_size = 128M 
upload_max_filesize = 128M 

,如果你們需要我使用XAMPP的額外信息。

+0

超時警告? – MHowey 2012-07-08 04:42:28

+0

memory_limit?的max_execution_time? max_input_time設置?沒有錯誤信息? – MHowey 2012-07-08 04:45:42

回答

4

看起來你正在尋找錯誤的php.ini,因爲默認post_max_size一般是8M。

重新啓動Web服務器,並考慮phpinfo()函數

1

您可以輕鬆地只覆蓋INI在PHP與此代碼。

ini_set('memory_limit', '32M'); 
ini_set('post_max_size', '16M'); 
ini_set('upload_max_filesize', '16M'); 
1

我想不出一個更好的答案比this

我會建議使用每個腳本的ini_set因爲你不一定要廣泛籌集執行時間點。