Я пытаюсь загрузить несколько файлов в папку с помощью PHP, а затем добавить путь к файлу и т. Д. В базу данных SQL.
Когда я удаляю оператор if, который выполняет запрос к базе данных, все выбранные файлы успешно выгружаются в указанный каталог, и эхо-сигнал «success» печатается столько же раз, сколько и загруженных файлов, как и ожидалось.
Когда я добавляю оператор if обратно, это вызывает загрузку только первого файла и ничего больше не выводится. Для одного загруженного файла выводится только одно эхо-сообщение «success», и не выводятся статусы: success или error: … и ничего не добавляется в базу данных.
Ниже приведен код:
if (isset($_POST)) {
if (count($_FILES['upload']['name']) > 0) {
for($i=0; $i<count($_FILES['upload']['name']); $i++) {
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
if ($tmpFilePath != "") {
$shortname = $_FILES['upload']['name'][$i];
$filePath = "../../uploads/files/" . $_FILES['upload']['name'][$i];
if(move_uploaded_file($tmpFilePath, $filePath)) {
echo "success";
include './includes/db/databaseUploads.php';
$files[] = $shortname;
$dbuserId = $_SESSION['login_id'];
$queryAddFile = "INSERT INTO `files`(`id`, `file_name`, `folder`, `user_id`, `upload_time`, `modify_time`) VALUES (NULL,$shortname,'root',$dbuserId',NULL,NULL)";
//Removing the below if statement allows me to upload multiple files but obviously removes database functionality.
if ($connectionUploads->query($queryAddFile) === TRUE) {
echo '{"status":"success"}';
} else {
echo '{"status":"error", "response":"'.$connectionUploads->error.'"}';
}
}
}
}
}
} else {
echo "no post";
}
Любая помощь будет принята с благодарностью.
Задача ещё не решена.
Других решений пока нет …