в бд попадает только последний элемент массива, а сервере грузится все

115
22 января 2021, 02:40

Здравствуйте!

Есть скрипт загрузки изображений. Надо, чтобы в бд в одно поле попадали сразу все имена загруженных файлов, а сейчас попадает только один, хотя на сервер грузит все как надо.

php

<?php
session_start();
if (empty($_SESSION[login]))
{exit ("Страница не найдена!" );}
mysql_connect("", "", "");
mysql_select_db("");
if(isset($_FILES))
{
    //пролистываем весь массив изображений по одному $_FILES['file']['name'] as $k=>$v
    $err = array();
    {
        // Каталог, в который мы будем принимать файл:
        $uploaddir = 'images/';
        $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name'][$k]);
        // Копируем файл из каталога для временного хранения файлов:
        if (!copy($_FILES['uploadfile']['tmp_name'][$k], $uploadfile))
        {
            $error[] = "<div class='dannye'><h3>Ошибка! Не удалось загрузить файл на сервер!</div></h3>";
        }
        if(count($error) == 0)
            $uploaddire = $uploaddir;
        foreach ($_FILES['uploadfile']['name'] as $k=>$v)
        {
            $uploadfilee = array();
            {
                $uploadfilee[] = $_FILES['uploadfile']['name'][$k];
            }
            //$uploadfiles = explode(',', $uploadfilee);
            //$getMime =  $_FILES['uploadfile']['name'][$k];
            $comma_separated = implode(',', $uploadfilee);
        }
        {
            $sqlimage = mysql_query("UPDATE `users` SET catalog='".$uploaddire."', filename='".$comma_separated."' WHERE login='".$_GET['login']."'");
            //выводим результат
            if(isset($sqlimage))
            {
                print_r("<div class='dannye'><p>даные вставлены </p> ".$comma_separated."</div>");
            } else {
                print "<div class='dannye'><b>При добавленнии изображения произошли следующие ошибки:</b><br>";
                foreach($error AS $errors)
                {
                    print  $errors. "<br>";
                }
                print  "</div>";
            }
        }
    }
}
?>

html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Загрузка изображения на сервер</title>
<script src="javascript.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="header.css">
<style type="text/css">
.dannye {
    position: relative;
    top: 370px;
    font-size: 16px;
}
</style>
</head>
<body>
<header>
    <p>Загрузка изображения на сервер</p>
</header>
<div class="content">
<?
mysql_connect("", "", "");
mysql_select_db("");
print_r($_GET['login']);
?></p>
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='uploadfile[]' multiple='true' />
<input type='submit' value='Загрузить'></form>
</div>
</body>
</html>
Answer 1

у вас путанница в коде конкретно:

foreach ($_FILES['uploadfile']['name'] as $k=>$v)
{
$uploadfilee = array();
{  - что за скобка?
$uploadfilee[] = $_FILES['uploadfile']['name'][$k];
}

вынесите объявление массива за рамки цикла foreach - и тогда внутри цикла будет адекватно собираться массив

$uploadfilee = array();
foreach ($_FILES['uploadfile']['name'] as $k=>$v)
{
    $uploadfilee[] = $_FILES['uploadfile']['name'][$k];
}
READ ALSO
Получить файл через &#39;php://input&#39;

Получить файл через 'php://input'

Отправляю файлы (избражение, изображние в архиве) на сервер POST-запросомФайл приходит(данные появляются в $_FILES)

109
Правильная загрузка больших файлов, PHP

Правильная загрузка больших файлов, PHP

Всем приветЗадался вопросом, как правильно отдавать пользователю на загрузку большой файл? Использую Laravel, при стандартном подходе response()->download()...

83
Использование нескольких @OneToOne аннотаций Hibernate

Использование нескольких @OneToOne аннотаций Hibernate

У меня есть 3 сущности: Customer, User и VerificationEmail

86
java Spring сервер не получает POST и PUT запросы из android

java Spring сервер не получает POST и PUT запросы из android

У меня есть простой север на Spring`е, что должен обрабатывать GET, PUT и POST запросы, и работать с БД соответственноС GET никаких проблем нет, и приложение...

104