Ich schreibe einen Code, um ein Bild an einem bestimmten Ort hochzuladen und eine Anzahl hochgeladener Bilder anzuzeigen. Es wird perfekt funktionieren, wenn ich unter 8 Bilder wähle. Aber der gleiche Code funktioniert nicht, wenn ich 10 bis 20 Bilder auswähle. Ich habe wirklich keine Ahnung, warum es funktionieren würde, wenn ich eine minimale Anzahl von Bildern auswähle und nicht funktioniert, wenn ich eine größere Anzahl von Bildern auswähle. Bitte finden meinen Code untenDas ausgewählte Bild kann nicht hochgeladen werden, wenn die Anzahl der ausgewählten Bilder 10 überschreitet. 10
storeimage.php
<?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();
}
?>
Programm beendet wird, wenn dieses $ total_image Ausführung = count ($ _ FILES [ 'Dateien'] [ 'name ']); Zeile, wenn ich 10 bis 20 Dateien auswähle. $ total_image wird als 0 angezeigt. Kann jemand helfen, was ist das Problem hier? Danke im Voraus.
Ja, Sie haben Recht. Aber warum funktioniert mein Code nicht, wenn ich 10 oder 12 oder 13 Bilder aus dem Dateibrowserfenster auswähle? Jetzt habe ich max_file_uploads als 20 in php.ini-Datei. – Janaki
Sie können auch die anderen Einstellungen in php.ini überprüfen, zum Beispiel 'upload_max_filesize' und' post_max_size' – rjdown
Nur eine Anmerkung, vergessen Sie nicht, Ihren HTTP-Server nach Änderungen der php.ini Konfiguration – Chay22