2017-05-02 21 views
0

網頁我的寫作需要加載幾乎任何大小的圖像,處理過程與我嘗試過的很多圖像一致,但是當我嘗試上載2.05MB的圖像,並沒有上傳(我嘗試了其他大的圖像來確定圖像是否是問題)。我認爲這可能是一個飛躍的變量,但我想知道你的想法和解決方案,你會給這個問題。PHP文件處理大圖像時未設置變量

<?php 

    $titulo = $_POST['titulo-img']; 
    $nombreImagen = $_FILES['input-img']['name']; 
    $tipoImagen = $_FILES['input-img']['type']; 
    $tamagnoImagen = $_FILES['input-img']['size']; 
    $rutaDestino = $_SERVER['DOCUMENT_ROOT'] . "/shap/imagenes"; //temporal 

    /*If i do the next: */ 
    echo "Tipo: " . $tipoImagen . "<br>"; //the output would be "Tipo: " 
    //and the rest would be emty thing wich doesn't happen with small image 

    if($tamagnoImagen<=524288000){ //about 500MB 
     if($tipoImagen=="image/jpeg" || $tipoImagen=="image/jpg" || $tipoImagen=="image/png" || $tipoImagen=="image/gif" || $tipoImagen=="image/x-icon"){ 
      move_uploaded_file($_FILES['input-img']['tmp_name'], $rutaDestino . "/" . $nombreImagen); 
      if(file_exists($rutaDestino . "/" . $nombreImagen)){ 
       echo "<p class='text-success'>Imagen subida con exito!</p>"; 
      }else{ 
       echo "<p class='text-danger'>Tuvimos un problema al subir la imagen. Por favor intentelo más tarde.</p>"; 
      } 
     }else{ 
      echo "<p class='text-danger'>No se admiten los archivos de tipo: " . $tipoImagen . "</p>"; 
      echo "<div class='text-danger'><p>Sólo se admiten archivos tipo: </p><ul><li>jpg</li><li>png</li><li>gif</li><li>ico</li></ul></div>"; 
     } 
    }else{ 
     echo "<p class='text-danger'>Archivo demasiado grande, lamentamos que nuestro limite de 500MB te detenga, algún día quitaremos este límite.</p>"; 
     echo "<p class='text-danger'>Si deseas que quitemos el límite puedes:</p>"; 
     echo "<ul class='text-primary'><li><a href='#'>Donar</a></li> <li><a href='#'>Ver un anuncio</a></li></ul>"; 
    } 

?> 

<form action="php/upload_image.php" class="form-horizontal" enctype="multipart/form-data" method="post"> 
    <div class="form-group"> 
     <div class="col-md-12"> 
      <input type="text" placeholder="Titulo de la imagen" class="form-control" name="titulo-img"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-12"> 
      <label for="select-img"> 
       Seleccionar imagen 
      </label> 
      <input type="file" name="input-img"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-6"> 
      <input type="submit" class="btn btn-primary form-control" value="Compartir"> 
     </div> 
     <div class="col-md-6"> 
      <input type="button" class="btn btn-danger form-control" value="Cancelar"> 
     </div> 
    </div> 
</form> 

回答

0

默認情況下,PHP設置爲僅允許上傳2MB或更少的文件。在你的PHP INI更改以下值以滿足您的需要(我已經將它們設置爲32):

upload_max_filesize = 32M 
post_max_size = 32M 

如果你不想編輯您的INI,你可以使用的ini_set():

ini_set('upload_max_filesize', '32M'); 
ini_set('post_max_size', '32M'); 
+0

嘿非常感謝你的回答,我試着將下面的代碼添加到我的php文件中(我在文件的開頭添加了它):\t ini_set('upload_max_filesize','500M'); ini_set('post_max_size','500M');我做得對嗎?我問問題,因爲問題仍然存在:(我使用Xampp,如果有幫助... ... –

+0

不是所有的ini設置將在使用ini_set()放入php文件時生效。upload_max_filesize和post_max_size是其中的兩個(參見[this comment](http://php.net/manual/en/function.ini-set.php#22264))。你將需要在你的php.ini文件中改變它們。 –