Я пытаюсь настроить многопользовательский загрузчик изображений, и всякий раз, когда я пытаюсь загрузить более 20 файлов, загружаются только первые 20 файлов.PHP - Множественная загрузка файлов застряла в 20 элементах
Прежде чем продолжить, id просто скажет, что max_file_uploads в php.ini настроен на 400, поэтому другие ответы на очень похожие вопросы, похоже, не разрешают мою проблему.
Мой полный код ниже, обратите внимание, что я знаю, что использую mysql_query, но это только для локальных целей тестирования.
-
PHP
if(isset($_POST['upload'])){
include("SimpleImage.php");
echo count($_FILES['file']['name']);
for($i=0; $i<count($_FILES['file']['name']); $i++) {
$allowedExts = array("gif", "jpeg", "jpg", "png", "JPG");
$extension = end(explode(".", $_FILES["file"]["name"][$i]));
date_default_timezone_set('Europe/London');
$date = date_create();
if ((($_FILES["file"]["type"][$i] == "image/gif")
|| ($_FILES["file"]["type"][$i] == "image/jpeg")
|| ($_FILES["file"]["type"][$i] == "image/jpg")
|| ($_FILES["file"]["type"][$i] == "image/png"))
&& ($_FILES["file"]["size"][$i] < 10485760)
&& in_array($extension, $allowedExts)){
$name = date_timestamp_get($date) . "_" . mt_rand() . "." . $extension;
if ($_FILES["file"]["error"][$key] > 0){
$messages[] = "Return Code: " . $_FILES["file"]["error"][$i] . "<br>";
}else{
$imagethumbTrueLocation = "../../gallery/thumb/" . $name;
$imagelargeTrueLocation = "../../gallery/photos/" . $name;
$imagethumb = new SimpleImage();
$imagethumb->load($_FILES["file"]["tmp_name"][$i]);
$imagethumb->resizeToWidth(230);
$imagethumb->save($imagethumbTrueLocation);
$imagethumblocation = "thumb/" . $name;
$imagelarge = new SimpleImage();
$imagelarge->load($_FILES["file"]["tmp_name"][$i]);
$imagelarge->resizeToWidth(800);
$imagelarge->save($imagelargeTrueLocation);
$imagelargelocation = "photos/" . $name;
$queryresult = mysql_query("INSERT INTO gallery (thumbnail, highres) VALUES ('$imagethumblocation', '$imagelargelocation')") or die(mysql_error());
if(!$queryresult) {
$messages[] = "Failed to insert record into the database.";
}else{
$messages[] = "Record sucessfully added to the database.";
}
}
}else{
$messages[] = "Invalid file";
}
}
}
HTML
<form action="#" method="post" enctype="multipart/form-data">
<input type="file" name="file[]" id="file" multiple>
<input type="submit" name="upload" value="Upload" />
</form>
Как насчет 'post_max_size'? – Jon
HI @Jon post_max_size - 64M. 47 изображений, которые я пытаюсь загрузить, составляют 4,5 МБ. –
Привет, Оливер, я написал фрагмент кода, очень похожий на ваш (с использованием класса SimpleImage), и у меня почти такая же проблема. Загрузка может застрять, и ничего не происходит, браузер пытается что-то сделать, но я не могу понять, почему это не работает. Нет таймаута. Нет ошибки ... только значок загрузки вращается. Вы нашли решение своей проблемы? Это может помочь мне расследовать ... –