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.
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
Ayrıca php.ini içindeki diğer ayarları da kontrol etmek isteyebilirsiniz, örneğin 'upload_max_filesize' ve' post_max_size' – rjdown
Sadece bir not, php.ini yapılandırması – Chay22