2016-04-12 11 views
2

Belirli bir konuma resim yüklemek ve yüklenen görüntü sayısı sayısını göstermek için bir kod yazarım. 8 resmin altında seçtiğinizde mükemmel çalışır. Ancak, 10 ile 20 arasında görüntü seçtiğimde aynı kod çalışmadı. Minimum sayıda görüntü seçerken neden işe yarayacağını ve daha fazla sayıda görüntü seçtiğimde çalışmama konusunda hiçbir fikrim yok. Bu $ total_image çalıştırırkenSeçilen görüntünün sayısı aşıyorsa seçili fotoğraf yüklenemiyor 10

<?php 
    require_once 'pdoconnectionusingclass.php'; 
?> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8" /> 
     <title>Multiple File Ppload with PHP</title> 
    </head> 
    <body> 
     <form action="storeimagename.php" method="POST" enctype="multipart/form-data"> 
      <div> 
      <select name="moviename"> 
      <option value = "">---Select---</option> 
      <?php 
      try 
      { 
      $dbobj=new database(); 
      $dbobj->openconnection(); 
      $sql='select * from tbl_movie'; 
      $query=$dbobj->getdata($sql); 
      if(isset($query)) 
      { 
       foreach ($query as $row) 
       { 
        echo '<option value='.str_replace(' ','_', $row['movie_name']).'>'.$row['movie_name'].'</option>'; 
       } 
      } 
      $dbobj->closeconnection(); 
      } 

      catch(Exception $e) 
      { 
       echo $e->getMessage(); 
      } 
      ?> 
      </div> 
      <br/> 
      <div> 
      <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" /> 
      <input type="submit" value="Upload!" /> 
      </div> 
    </form> 
    </body> 
    </html> 

storeimagename.php

<?php 
require_once 'pdoconnectionusingclass.php'; 
$valid_formats = array("jpg", "png", "gif", "bmp"); 
$max_file_size = 1048576 *10; //100 kb 
$path = "uploads/"; // Upload directory 
$count = 0; 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Loop $_FILES to exeicute all files 


    $total_image=count($_FILES['files']['name']); 

    $dbobj=new database(); 
    $dbobj->openconnection(); 

    for($i=0;$i<$total_image;$i++) 
    { 
    foreach ($_FILES['files']['name'] as $i => $name) {  
     if ($_FILES['files']['error'][$i] == 4) { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$i] == 0) {    
      if ($_FILES['files']['size'][$i] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else{ // No error found! Move uploaded files 
//     echo $_FILES['files']['tmp_name'][$i]; 
//     echo $_FILES['files']['name'][$i]; 

        if(move_uploaded_file($_FILES["files"]["tmp_name"][$i], $path.$name)) 
        { 
         $count++; // Number of successfully uploaded file 
         $gallery.=','.$name; 

        } 
      } 
     } 
    } 
    } 

    if(count==18) 
    { 
     $sql='insert into tbl_movie_gallery values((select movie_id from tbl_movie where movie_name='.str_replace('_',' ',$_POST['moviename']).')'.$gallery.');'; 
     $dbobj->insertdata($sql); 
    } 

    //unset($_FILES['files']); 
    $dbobj->closeconnection(); 
} 
?> 

Programı sonlandırılır

storeimage.php benim aşağıda kod bulabilirsiniz = sayım ($ _ FILES [ 'dosya'] [ 'name ']); satır 10 ila 20 dosya seçersem. $ total_image görüntüler 0 olarak sayılır. Sorun olan herhangi bir kişi burada yardımcı olabilir mi? Şimdiden teşekkürler.

cevap

1

PHP, bir kerede yükleyebileceğiniz maksimum dosya miktarı için bir ayar vardır. Varsayılan 20'dir. Bunu php.ini dosyanızda değiştirmeniz gerekecektir.

aradığınız ayar max_file_uploads

More information

+0

Evet haklısınız olduğunu. Ama dosya tarayıcı penceresinden 10 veya 12 veya 13 görüntü seçtiğimde neden kodum çalışmıyor. Şimdi php.ini dosyasında 20 olarak max_file_uploads yaşıyorum. – Janaki

+0

Ayrıca php.ini içindeki diğer ayarları da kontrol etmek isteyebilirsiniz, örneğin 'upload_max_filesize' ve' post_max_size' – rjdown

+1

Sadece bir not, php.ini yapılandırması – Chay22