Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.06.2017
Сообщений: 68

Загрузка нескольких фото сразу

13.08.2018, 23:16. Показов 1470. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP Скопировано
1
2
3
4
5
6
<?php
 
$data = $_POST;
if (isset($data["setbutton"]))
        print_r($_FILES);
?>
HTML5 Скопировано
1
2
3
4
<form name="add_ad" action="/add_ads.php" method="post" enctype="multipart/form-data">
            <input type="file" name="photos" accept="image/*" value="" multiple="multiple"><br />
            <button type="submit" name="setbutton">Publish</button><br />
</form>
Вот такая форма обрабатывает запрос на добавление файлов. Я пытаюсь сделать так, чтобы за раз можно было загрузить несколько фото, но почему-то ничего не выходит. В массиве выводится лишь первая из них. При добавлении поля с max_size до input'a выводит ошибку. Оригинальный код, куда это будет встраиваться выложу ниже.

То, что нужно реализовать закоментировано # |TO REALIZE|
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
    require "db.php";
    
    if(isset($_SESSION['logged_user'])) {
 
        $data = $_POST;
        if (isset($data["setbutton"])) {
            $errors = array();
            if(trim($data['type_selection']) == '')
                $errors[] = "Выберите, что вы продаете/сдаете";
            if(trim($data['selection_sell_or_arend']) == '')
                $errors[] = "Выберите: продаете или сдаете";
            if(trim($data['description']) == '')
                $errors[] = "Опишите ваш товар";
            if(trim($data['price']) == '')
                $errors[] = "Введите цену";
            if(trim($data['adress']) == '')
                $errors[] = "Введите адрес";
            if($data['price'] < 5000)
                $errors[] = "Неверная цена";
            # |TO REALIZE| Проверка на то, что загружено не менее 4 фото и общий вес не более 40 мб
 
            if( R::count('ads', 'description = ?', array($data['description'])) > 0) {
                $errors[] = "Это объявление уже найдено в базе данных!";
            }
 
 
            if(empty($errors)) {
                $ad = R::dispense('ads');
                $ad->type_of_property = $data['type_selection'];
                $ad->selection_sell_or_arend = $data['selection_sell_or_arend'];
                $ad->description = $data['description'];
                $ad->price = $data['price'];
                $ad->adress = $data['adress'];
                # |TO REALIZE| добавление фотки в папку с id строки в таблице
                R::store($ad);
 
                echo '<div style="color: #04ff43">'."Ваше объявление было помещено в базу данных".'</div>';
                echo "<hr />";
            }
 
            else {
                echo '<div style="color:red">'.array_shift($errors).'</div>';
                echo "<hr />";
            }
        }
    }
    else {
        header ('Location: /auth.php');
    }
?>
HTML5 Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
 
<head>
    <title>Add Ad</title>
    <link type="text/css" rel="stylesheet" href="/styles/style_add_ads.css" />
</head>
 
<body>
 
    <div class="container_add_ad">
 
        <form name="add_ad" action="/add_ads.php" method="post" enctype="multipart/form-data">
 
            <select name="type_selection">
                <option value="" disabled selected>Что вы продаете/сдаете</option>
                <option value="" disabled>mənzil</option>
                <option value="yeni tikili">—yeni tikili</option>
                <option value="köhnə tikili">—köhnə tikili</option>
                <option value="ev">ev</option>
                <option value="bağ">bağ</option>
                <option value="ofis">ofis</option>
                <option value="qaraj">qaraj</option>
                <option value="torpağ">torpağ</option>
                <option value="obyekt">obyekt</option>
            </select><br />
 
            <select name="selection_sell_or_arend">
                <option value="" disabled selected>Выберите...</option>
                <option value="satılır">satılır</option>
                <option value="kirayə verinilir">kirayə verinilir</option>
            </select><br />
 
            <textarea name="description" placeholder="Описание (макс. 1000 символов)" maxlength="1000" ></textarea><br />
            <input type="number" name="price" placeholder="qiymət azn"><br />
            <input type="text" name="adress" placeholder="ünvan"><br />
            <input type="file" name="photos" accept="image/*" value="" multiple="multiple"><br /><br />
            <button type="submit" name="setbutton">Publish</button><br /><br />
            <a href="/index.php">Перейти на главную</a>
        </form>
 
    </div>
 
</body>
 
</html>
Добавлено через 2 минуты
Используется redbeanphp для доступа к базе данных и работы с ней

Добавлено через 2 минуты
Функционал должен быть как тут https://bina.az/items/new
Кнопка Şəkil əlavə etmək внизу страницы

Добавлено через 33 секунды
https://ru.bina.az/items/new
Добавить фото
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.08.2018, 23:16
Ответы с готовыми решениями:

Загрузка фото
Добрый вечеря делаю ресайз изображений при помощи класса. Дело в том что там используются функции из GD и я так понял из-за этого сильно...

Загрузка фото VK API
Пытаюсь загрузить фото в альбом с помощью VK API. Загрузка фотографий на сервер ВКонтакте от имени пользователя осуществляется приложением...

Загрузка фото на сайт
Подскажите пожалуйста, как сделать загрузку юзерами фото на сайт?

1
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
14.08.2018, 14:26
Лучший ответ Сообщение было отмечено Мураша как решение

Решение

PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?PHP 
if(isset($_POST['sub'])) {
    
    
 
    
foreach($_FILES['abc']['name'] as $photo) {
 
    
    
    
echo $photo;
    
}
}
 
?>

HTML5 Скопировано
1
2
3
4
5
6
<form enctype="multipart/form-data" action="" method="POST">
 
 
 <input name="abc[]" type="file" multiple />
    <input type="submit"  name='sub' value="Отправить файл" />
</form>
Добавлено через 46 секунд
Цитата Сообщение от Мураша Посмотреть сообщение
<input type="file" name="photos" accep
photos[]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2018, 14:26
Помогаю со студенческими работами здесь

Загрузка фото на сервер
данные код позволяет загрузить txt файлы , но не jpg. в чем может быть причина ? if(!empty($_FILES)){ $path = 'uploads/'; //...

Безопасная загрузка фото
Подскажите пожалуйста, безопасен и актуален ли данный код (загрузка фото): if(isset($_FILES)){ $path_images = 'images';//папка,...

Парсер сразу нескольких сайтов
Нужно спарсить 3 сайта http://www.openmark.ru/shop/CID_9_ALL.html http://intex-online.ru/?s=categories&amp;category=8 ...

Загрузка фото для фотогалереи
Как изменить код загрузки фото таким образом чтобы загружаемые скопом файлы поучали нумерацию: &quot;1&quot;, &quot;2&quot;, &quot;3&quot;,...

Обновление сразу нескольких строк таблицы
Здраствуйте. Помогите пож-та сделать изменения сразу нескольких строк таблицы mysql. Вот код вывода данных для изменения: if ( isset...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Интеграция Hangfire с RabbitMQ в проектах C#.NET
stackOverflow 18.04.2025
Разработка современных . NET-приложений часто требует выполнения задач "за кулисами". Это может быть отправка email-уведомлений, генерация отчётов, обработка загруженных файлов или синхронизация. . .
Построение эффективных запросов в микросервисной архитектуре: Стратегии и практики
ArchitectMsa 18.04.2025
Микросервисная архитектура принесла с собой много преимуществ — возможность независимого масштабирования сервисов, технологическую гибкость и четкое разграничение ответственности. Но как часто бывает. . .
Префабы в Unity: Использование, хранение, управление
GameUnited 18.04.2025
Префабы — один из краеугольных элементов разработки игр в Unity, представляющий собой шаблоны объектов, которые можно многократно использовать в различных сценах. Они позволяют создавать составные. . .
RabbitMQ как шина данных в интеграционных решениях на C# (с MassTransit)
stackOverflow 18.04.2025
Современный бизнес опирается на множество специализированных программных систем, каждая из которых заточена под решение конкретных задач. CRM управляет отношениями с клиентами, ERP контролирует. . .
Типы в TypeScript
run.dev 18.04.2025
TypeScript представляет собой мощное расширение JavaScript, которое добавляет статическую типизацию в этот динамический язык. В JavaScript, где переменная может свободно менять тип в процессе. . .
Погружение в Kafka: Концепции и примеры на C# с ASP.NET Core
stackOverflow 18.04.2025
Apache Kafka изменила подход к обработке данных в распределенных системах. Эта платформа потоковой передачи данных выходит далеко за рамки обычной шины сообщений, предлагая мощные возможности,. . .
Коммуникация в реальном времени с SignalR в C# на примере создания чата
UnmanagedCoder 17.04.2025
Современный веб стремительно эволюционирует от статичных страниц к динамичным приложениям, где пользователи ожидают мгновенной реакции на свои действия. Представим, что вы отправляете сообщение. . .
Реализация CQRS с MediatR на C# .NET
stackOverflow 17.04.2025
Современная разработка программного обеспечения постоянно ищет пути повышения эффективности организации кода. Архитектурные паттерны появляются, эволюционируют, и те, что проявляют свою. . .
Verilog и интеллектуальная собственность - "глазами" обученной LM модели.
Hrethgir 17.04.2025
В сети встречаются участники, заявляющие что код на Verilog ни о чём не говорит. Но вот патентная практика на самом деле показывает обратное ими утверждаемому. То-есть код на Verilog включают в. . .
Свап-файл дополнительно к разделу (если вдруг не хватает или не создан)
jigi33 17.04.2025
ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНОГО SWAP ПРОСТРАНСТВА, Т. О. , РАСШИРЕНИЕ ЕГО РАЗМЕРА В Linux можно использовать как раздел подкачки (swap), так и файл подкачки (swap-файл). Чтобы создать swap-файл вместо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер