Я создал некоторый код, который позволяет пользователю загружать в базу данных MySQL несколько изображений.
Вот две мои проблемы:
- Когда происходит ошибка, например, потому что файл не изображение, рассматриваемый файл не загружен, но другие файлы это делают.
Наоборот, я хочу, чтобы, даже если произошла просто ошибка, файлы не загружались.
Пример : Если я загружаю 3 файла, и 1 из них не является изображением: - Мой вывод, который мне не нужен:
File 1 uploaded
File 2 uploaded
Just JPG and PNG images are allowed // file 3 not uploaded
- Что я ожидаю получить:
No files uploaded // Even if a single file is not good, nobody gets uploaded
- Если я загружу n файлов, будут напечатаны n сообщений. Например, если я загружу 3 файла, это будет вывод:
File 1.png upload correctly
File 2.png upload correctly
File 3.png upload correctly
Но я надеюсь получить только одно предложение, например 3 files uploaded
.
Вот мой код:
$timestamp = time();
$total = count($_FILES[ 'upload' ][ 'name' ]);
if ($total==0) {
echo "Please upload at least one file";
$uploadOk = 0;
} else {
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
for($i = 0; $i < $total; $i++) {
if ($tmpFilePath != '') {
$newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];
$completeFileName = basename($_FILES["upload"]["name"][$i]);
$target_file = "uploads/$completeFileName"; $uploadOk = 1;
$estensione = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$Name = basename($_FILES["upload"]["name"][$i]);
if($extension != 'jpg' && $extension != 'png') {
echo "Only JPG and PNG files are allowed";
$uploadOk = 0;
} else {
$fileName = str_replace(".$extension", '', $completeFileName);
$string = substr(md5(mt_rand()), 0, 15);
$id = rand(1, 100000);
$finalFileName = 'uploads/'.$string.$id.'.'.$estensione;
if (move_uploaded_file($_FILES["upload"]["tmp_name"][$i], $finalFileName)) {
$mysqli = new mysqli('localhost', 'example', '', 'my_example');
$mysqli->query("INSERT INTO uploads (timestamp, file) VALUES ('$timestamp', '$finalFileName')");
echo "<h2>The file <i>$fileName</i> has been uploaded.</h2>";
} else echo "Error";
}
}
}
}
}
Я надеюсь, что мое объяснение понятно. Спасибо!