Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/57: Рейтинг темы: голосов - 57, средняя оценка - 4.51
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576

Мультизагрузка фотографий

04.11.2011, 12:57. Показов 11536. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте кто нибудь может помочь нужна мультизагрузка фотографий с записью путя в базу данных
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2011, 12:57
Ответы с готовыми решениями:

Мультизагрузка изображений
Привет. Нужен ваш совет и направление в верную сторону =) В общем пишу я велосипед (интернет-магазин). В данный момент мне нужно...

Мультизагрузка изображений
Через форму <textarea> вводиться сообщения также может быть добавлено изображение, но я не знаю как добавить несколько изображений. ...

Мультизагрузка файлов на сервер?
Всем Првиет! Такой вопрос... мне нужно залить на сервер несколько файлов..(кол-во может быть 0 1 и т д(скажем так до Лимита ограничения...

12
 Аватар для hatsub
61 / 60 / 7
Регистрация: 25.05.2011
Сообщений: 388
04.11.2011, 22:08
Что значит мульти? Загрузка архивом?
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
05.11.2011, 03:04  [ТС]
Цитата Сообщение от hatsub Посмотреть сообщение
Что значит мульти? Загрузка архивом?
можно архивом а можно и просто шифтом выбрать несколько файлов
просто проблема в том что ески на флеше я не понимаю как сделать чтоб пути к фоткам прописывались.
так что у меня форма есть згрузки и заоисе путей я хочу к ней приделать чтоб шифтом несколько файлов выбрать а пути записались в бд)))
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
06.11.2011, 17:38  [ТС]
помогите кто нибудь )))))
0
 Аватар для Фоат
165 / 82 / 32
Регистрация: 05.02.2010
Сообщений: 318
06.11.2011, 17:50
PHP
1
2
3
4
5
6
<form action="upload.php" method="post" enctype="multipart/form-data"> 
  <input name="file[]" type="file" /><br /> 
  <input name="file[]" type="file" /><br /> 
  <input name="file[]" type="file" /><br /> 
  <input type="submit" value="Send files" /> 
</form>
Добавлено через 2 минуты
Файл upload.php:


PHP
1
2
3
4
5
6
7
8
<?php 
if (isset($file)) { 
 foreach ($file as $item => $value) { 
  if (move_uploaded_file($_FILES['file'][$item]['tmp_name'],$_FILES['file'][$item]['name'])) { 
   echo 'OK!'; 
 } 
} 
?>
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
06.11.2011, 18:12  [ТС]
Фоат, спасибо но я это знаю мне немного другое надо
вот код
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<script type='text/javascript'>
function del(news_id, id)
{
    if(confirm("Вы действительно хотите удалить фотографию?"))
        document.location.replace("/adminka/foto/foto_news.php?news_id=" + news_id + "&act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<td align=center><p><a href="https://www.cyberforum.ru/news/news.php" title="Вернуться в новости">Новости</a></td>
<hr>
</form>
<?php
include "../config.php";
$db = 'foto_news';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../../'.$row['url']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить фото!' . mysql_error());
    
    return true;
}
 
 
// Здесь добавляем
$imgDir = "../../foto/foto";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
   $data = $_FILES['file'];
   $tmp = $data['tmp_name'];       
 
   if (@file_exists($tmp)) {
      $info = @getimagesize($_FILES['file']['tmp_name']);
      if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
         $name = "$imgDir/".time().".".$p[1];
         move_uploaded_file($tmp,$name);
         $url = $name;
         $result = mysql_query("INSERT INTO foto_news (id,url,news_id) VALUES ('$id','".str_replace("../../","",$url)."'
,'".$_POST['news_id']."')");
header("Location: /adminka/foto/foto_news.php?news_id=".$_POST['news_id'].""); exit();
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `foto_news` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="https://www.cyberforum.ru/php-beginners/<?=$row['url']?>">
<a href='javascript: del(<?= $_GET['news_id']; ?>, <?= $row['id']; ?>)'><img src="https://www.cyberforum.ru/images/del.gif" align="top" width="20" height="20" alt="Удалить" /></a>
  </td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location:  foto_news.php?news_id=". $_GET['news_id'].""); exit();
}
?>
при выборе файла можно выбрать только один а я хотела бы сделать так чтоб с заэатым шифтом выбрать несколь файлов(((
0
 Аватар для Фоат
165 / 82 / 32
Регистрация: 05.02.2010
Сообщений: 318
06.11.2011, 18:31
Цитата Сообщение от little_dita Посмотреть сообщение
так чтоб с заэатым шифтом выбрать
Крутоовато для меня sorry
0
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
06.11.2011, 18:56
HTML5
1
<input type="file" name="file" multiple />
3
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
06.11.2011, 20:48  [ТС]
о спасибо выбрать можно теперь много но в таблицы записывается тоько один как это исправить
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
06.11.2011, 23:03
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Денис Н. Посмотреть сообщение
HTML5
1
<input type="file" name="file" multiple />
HTML5
1
<input type="file" name="file[]" multiple />
Добавлено через 2 минуты
А тут выбираем функцию, которая бы привила массив с файлами к приемлемому виду

Добавлено через 16 минут
Фоат, там другой формат массива $_FILES после отправки нескольких файлов.
PHP
1
$_FILES['file']['name'][$i];
4
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
07.11.2011, 22:23  [ТС]
forgergg,
извените за тыпость мою
сделала
PHP
1
<input type="file" name="file[]" multiple />
а что далше както не пойму?
подскаэите пожайлуста
0
135 / 135 / 29
Регистрация: 18.10.2011
Сообщений: 306
07.11.2011, 22:57
Цитата Сообщение от little_dita Посмотреть сообщение
а что далше както не пойму?
подскаэите пожайлуста
Пишите по-русски )
HTML5
1
2
3
4
<form action="upload.php" method="POST" name="upload_form" enctype="multipart/form-data">           
            <input type="file" name="file1[]" multiple/>
            <input type="submit" name="upldFile" value="send" /> 
</form>
upload.php
PHP
1
2
3
4
5
6
7
if (isset($_POST['upldFile']))
{
            echo '<pre>';
            var_dump($_FILES);
            echo '</pre>';
             exit();
}
В предыдущем посте я давал ссылку на функции, которые могут преобразовать этот массив к более удобному виду аля :
PHP
1
$_FILES[file][name][$i]  - > $_FILES[file][$i][name]
В базу заносить скорее всего придется в цикле, столько раз сколько файлов пришло на сервер.
зы: Если после этого вы не поймете что нужно делать с этим массивом $_FILES, то думаю вам не стоит этим дальше заниматься.

Добавлено через 5 минут
Просто создайте отдельные 2 странички: с формой и пхп скриптом. Посмотрите что происходит после отправки нескольких файлов, в каком виде они появляются в массиве $_FILES. Подумайте каким образом можно вытащить все нужные поля одного файла и отправить в базу.
2
1 / 1 / 0
Регистрация: 25.06.2017
Сообщений: 68
14.08.2018, 14:34
На моем сайте висит такой скрипт. Использую redbean php

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
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
    require "db.php";
    require "needed functions.php";
 
    
    if(isset($_SESSION['logged_user'])) {
        
        $data = $_POST;
        if (isset($data["setbutton"]) && isset($_FILES["photos"])) {
            $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'] < 50)
                $errors[] = "Неверная цена";
 
            if( R::count('ads', 'description = ?', array($data['description'])) > 0) {
                $errors[] = "Это объявление уже найдено в базе данных!";
            }
 
            /*CHEKING AND UPLOADING PHOTOS*/
 
            $ad = R::dispense('ads');
            $id = R::findLast('ads') + 1;
 
            $count_of_photos = count($_FILES['photos']);
 
            for($i = 0; $i <= $count_of_photos; $i++){
                echo check_photo('photos', $i);
            }
 
            /*END CHEKING AND UPLOADING PHOTOS*/
 
            if(empty($errors)) {
                $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'];
                $ad->photos_path = "DB_OF_IMGS/".$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>
Содержимое needed functions.php

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
<?
    
    function folder_exist($folder){
    $path = realpath($folder);
 
    if($path !== false AND is_dir($path)){
        return $path;
    }
    return false;
}
    
    function check_photo($input_name, $number_of_photo){
 
    $max_image_size     = 64 * 1024 * 1024;
    $valid_types        =  array("gif","jpg", "png", "jpeg");
 
    $id = R::findLast('ads')->id + 1;
 
    if (is_uploaded_file($_FILES["$input_name"]['tmp_name']["$number_of_photo"])) {
                $filename = $_FILES["$input_name"]['tmp_name']["$number_of_photo"];
                $ext = substr($_FILES["$input_name"]['name']["$number_of_photo"], 1 + strrpos($_FILES["$input_name"]['name']["$number_of_photo"], "."));
                
 
                if (filesize($filename) > $max_image_size) {
                    return 'Error: image size is Invalid';
                }
                elseif (!in_array($ext, $valid_types)) {
                    return 'Error: Invalid file type.';
                } 
                else {
                    $size = GetImageSize($filename);
 
                    if(!folder_exist("DB_OF_IMGS/".$id))
                        mkdir("DB_OF_IMGS/".$id, 0755);
 
                    if (@move_uploaded_file($filename, "DB_OF_IMGS/".$id."/IMG_".$number_of_photo.".".$ext))
                        return "success";
                    else
                        return 'Error. Обратитесь в техподдержку';
                }
                }
                else
                    return $_FILES["$input_name"]["error"][$number_of_photo];
}
 
?>
Содержимое db.php
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
 
    require "libs/rb.php";
 
    R::setup( 'mysql:host=localhost;dbname=garant',
 
        'root', '' );
 
        session_start();
 
?>
Добавлено через 1 минуту
Могу скинуть весь сайт для ознакомления. Пишите murik_bro@mail.ru
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2018, 14:34
Помогаю со студенческими работами здесь

Мультизагрузка в разные папки...
Добрый день или вечер. прошу помощи. Задача проста, создаются две папки mkdir('../images/clients/'.$pages, 0700); ...

Мультизагрузка файлов на PHP
надо сделать так, что бы можно было загружать много файлов на сайт через одну форму, т.е. что бы в одном окне ОС выбора файла можно было...

Мультизагрузка фото и добавление в БД их названий
Что нужно сделать чтобы имена изображений попадали в базу данных в поле photo. &lt;form action='test.php' method='post'...

Вставка фотографий
Доброго времени суток! У меня такой вопрос. Допустим есть папка с фотографиями, есть форма добавления новостей, как сделать так, что бы...

Сортировка фотографий
Доброго времени суток. Подскажите пожалуйста как можно cделать сортировку картинок? У меня в БД есть строка:...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru