Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
1

Мультизагрузка изображений

13.11.2014, 19:34. Показов 3689. Ответов 8
Метки нет (Все метки)

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

Сообщения заносятся в БД, код вставки:
PHP
1
2
3
4
5
6
7
8
if ($_FILES['add_image']['size'] !== 0){
$uploaddir = 'user_images/';
$uploadfile_options = $_FILES['add_image'];
$changed_name = $uploadfile_options[0] . time() . '.jpg';
$uploadfile = $uploaddir . $changed_name;
move_uploaded_file($_FILES['add_image']['tmp_name'], $uploadfile);
$message = $_POST['text'] . '<a id="thumb1" href="user_images/' . $changed_name . '" class="highslide" onclick="return hs.expand(this)" style="border-bottom: none; text-decoration: none;"><div style="margin-top: 120px; text-align: center;"><img src="user_images/' . $changed_name. '" title="Увеличить" style="max-width: 700px;"></div></a>';
}
Добавлено через 1 минуту
HTML:
HTML5
1
2
3
4
5
6
7
8
<form action="redirect_page.php" method="post" id="form_redirect" enctype="multipart/form-data">
<textarea name="text" id="text_redirect" autofocus>
</textarea><br>
<div class="buttons">
<input type="submit" onkeypress="usl(this.value, event)"><br><br>
<input type="file" name="add_image" accept="image/jpeg" multiple>
</div>
</form>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2014, 19:34
Ответы с готовыми решениями:

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

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

Мультизагрузка в разные папки...
Добрый день или вечер. прошу помощи. Задача проста, создаются две папки ...

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

8
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
13.11.2014, 20:50 2
HTML5
1
<input type="file" name="add_image[]" accept="image/jpeg" multiple>
И на сервере будут все файлы.
0
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
13.11.2014, 21:03  [ТС] 3
А PHP код Вы смотрели? Нужно еще сделать так, чтобы если два изображения были загружены, то в сообщение вставлялось два, а не одно.
0
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
13.11.2014, 21:07 4
ну думал вы уже сами догадаетесь что надо посмотреть что в $_FILES через print_r(), а потом уже подстраиваться под вывод.
php:
PHP
1
2
3
for($i=0,$sz=sizeof($_FILES['files']['name']);$i<$sz;++$i){
print_r($_FILES['files']['tmp_name'][$i]);
}
0
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
13.11.2014, 21:20  [ТС] 5
А куда это вставлять?
0
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
13.11.2014, 21:24 6
Цитата Сообщение от KVESTOR Посмотреть сообщение
А куда это вставлять?
Как вам надо обработать много файлов так и вставляйте, я показал как вывести информацию о загруженных файлах
0
15 / 15 / 4
Регистрация: 21.04.2014
Сообщений: 179
14.11.2014, 20:53  [ТС] 7
Хрень какая-то.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
15.11.2014, 20:34 8
у меня сделано вот так:
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
//ширина и высота в пикселях
$pic_weight = 3000;
$pic_height = 3000;
if (isset($_FILES))
{
  //пролистываем весь массив изображений по одному $_FILES
  foreach ($_FILES['bernu_foto_attels_imgupload']['name'] as $k=>$v)
  {
    //директория загрузки
    $uploaddir = "foto_attels_berni/";
    //новое имя изображения
    $apend=date('YmdHis').rand(100,1000).'.png';
    //путь к новому изображению
    $uploadfile = "$uploaddir$apend";
 
    //Проверка расширений загружаемых изображений
    if($_FILES['bernu_foto_attels_imgupload']['type'][$k] == "image/gif" || $_FILES['bernu_foto_attels_imgupload']['type'][$k] == "image/png" ||
    $_FILES['bernu_foto_attels_imgupload']['type'][$k] == "image/jpg" || $_FILES['bernu_foto_attels_imgupload']['type'][$k] == "image/jpeg")
    {
      //черный список типов файлов
      $blacklist = array(".php", ".phtml", ".php3", ".php4");
      foreach ($blacklist as $item)
      {
        if(preg_match("/$item\$/i", $_FILES['bernu_foto_attels_imgupload']['name'][$k]))
        {
          echo "Нельзя загружать скрипты.";
          exit;
        }
      }
 
      //перемещаем файл из временного хранилища
      if (move_uploaded_file($_FILES['bernu_foto_attels_imgupload']['tmp_name'][$k], $uploadfile))
      {
        //получаем размеры файла
        $size = getimagesize($uploadfile);
        //проверяем размеры файла, если они нам подходят, то оставляем файл
        if ($size[0] < $pic_weight && $size[1] < $pic_height)
        {
            //здесь добавляем в базу
 
          echo "<center><br>Файл ($uploadfile) загружен.</center>";
        }
        //если размеры файла нам не подходят, то удаляем файл unlink($uploadfile);
        else
        {
          echo "<center><br>Размер пикселей превышает допустимые нормы.</center>";
          unlink($uploadfile);
        }
      }
      else
        echo "<center><br>Файл не загружен, вернитесь и попробуйте еще раз.</center>";
    }
    else
      echo "<center><br>Можно загружать только изображения в форматах jpg, jpeg, gif и png.</center>";
  }
}
Добавлено через 2 минуты
или посмотри вот здесь с исправлениями + массив данных Дублирует записи в БД
0
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 1
07.04.2017, 07:52 9
Чуть подправил предыдущий вариант

PHP/HTML
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
<?
 
$pic_weight = $pic_height = 3000;
 
$allowed = ['jpg', 'png', 'gif', 'jpeg'];
$uploaddir = "test/";
$files = [];
$error = '';
 
 
if (isset($_FILES)) {
    foreach ($_FILES['images']['name'] as $k => $v) {
        $filename = date('YmdHis').rand(100,1000);
        $apend = $filename . '.' . (explode('/', $_FILES['images']['type'][$k]))[1];
        $uploadfile = $uploaddir . $apend;
 
 
        $continue = false;
        foreach ($allowed as $type) {
            if (
                $_FILES['images']['type'][$k] == 'image/' . $type &&        // mime type
                end(explode('.', $_FILES['images']['name'][$k])) == $type    // ext
            ) {
                $continue = true;
                break;
            }
        }
 
        if ($continue) {
            if (move_uploaded_file($_FILES['images']['tmp_name'][$k], $uploadfile)) {
                $size = getimagesize($uploadfile);
                $files[] = $uploadfile;
 
                if ($size[0] > $pic_weight || $size[1] > $pic_height) {
                    $error = 'Размер пикселей превышает допустимые нормы';
                    unlink($uploadfile);
                    foreach ($files as $file) {
                        unlink($file);
                    }
                    $files = [];
                    break;
                }
            } else {
                $error = 'Файлы не загружен, вернитесь и попробуйте еще раз';
                foreach ($files as $file) {
                    unlink($file);
                }
                $files = [];
                break;
            }
        } else {
            $error = 'Можно загружать только изображения в форматах jpg, jpeg, gif и png';
            foreach ($files as $file) {
                unlink($file);
            }
            $files = [];
            break;
        }
    }
 
    if (!$error) {
        foreach ($files as $file) {
            // сохраняем их в базу
            echo "<center><br><img src='$file' height='300px'></center>";
        }
    } else {
        echo $error;
    }
}
 
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Мультизагрузка изображений</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/bugs/">
    <input type="file" name="images[]" accept="image/*" multiple>
    <input type="submit">
</form>
</body>
</html>
0
07.04.2017, 07:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2017, 07:52
Помогаю со студенческими работами здесь

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

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

Хранение изображений и загрузка изображений
Привет, не когда не работал с изображениями когда их много, и тут возникла такая не обходимость,...

Мультизагрузка изображений
Здравствуйте, я загружаю несколько изображений в файловую систему ( точнее сами фотки грузятся в...

Мультизагрузка
Доброго времени суток уважаемие форумчане подскажите пожалуста как решить задачу: Есть USB-HDD...

Мультизагрузка с лимитом
Нужно реализовать загрузку мультизагрузку, но поставить лимит, что общий размер изображений не...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru