|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
|
Добавление изображений разных форматов (gif, jpg, и т.д.)17.02.2020, 20:55. Показов 2087. Ответов 9
Здравствуйте. Как сделать так, чтобы можно было добавлять разные форматы изображений? Все нижеперечисленные файлы запускаются через OpenServer
//dbconnection.php <?php $localhost = "localhost"; $db = "library2"; $user = "root"; $password = ""; $link = mysqli_connect("localhost", "root", "", "library2"); if (!$link) { echo "Нет соединения с сервером" . PHP_EOL; echo "Код ошибки errno: ". mysqli_connect_errno(). PHP_EOL; echo "Текст ошибки error: ". mysqli_connect_error(). PHP_EOL; exit; } ?> //index1.php <html> <head> <meta charset="utf-8"> <title>Загрузка изображений на сервер</title> <style> a{ text-decoration: none; } </style> </head> <body> <form method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="Загрузить на сервер"> </form> <?php require_once "dbconnection.php"; $files = scandir('small/'); $rows = mysqli_query($link, "SELECT * FROM images"); $array; while ($data = mysqli_fetch_array($rows)) { $clicks = $data['clicks']; $name = $data['name']; $array[$name] = $clicks; } arsort($array, SORT_NUMERIC); foreach ($array as $key => $value2) { foreach ($files as $value) { $getMime = explode('.', $value); $name = reset($getMime); if ($key === $name) echo "<a href='view_image.php?base=img_view&file_ name=$value' target='_blank'>  <img src=small/$value width='100' height='111'><img></a>"; } } if(isset($_FILES['file'])) { $check = can_upload($_FILES['file']); if ($check === true) { make_upload($_FILES['file']); $getMime = explode('.', $_FILES['file']['name']); $mime = strtolower(end($getMime)); $name = reset($getMime); save_to_db($name, $mime); echo '<script language="javascript">' . 'alert("Файл загружен")' . '</script>'; } else { echo "<strong>$check</strong><br /><br />"; } } function can_upload($file) { if($file['name'] == '') return 'Вы не выбрали файл.'; if($file['size'] == 0) return ''; $getMime = explode('.', $file['name']); $mime = strtolower(end($getMime)); $types = array('jpg', 'png', 'gif', 'bmp', 'jpeg'); if(!in_array($mime, $types)) return 'Недопустимый тип файла.'; return true; } function make_upload($file) { copy($file['tmp_name'], 'large/' . $file['name']); copy($file['tmp_name'], 'small/' . $file['name']); $filename = $file['name']; $size=GetImageSize ("small/$filename"); $src=ImageCreateFromJPEG ("small/$filename"); $iw=$size[0]; $ih=$size[1]; $koe=$iw/150; $new_h=ceil ($ih/$koe); $dst=ImageCreateTrueColor (150, $new_h); ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 150, $new_h, $iw, $ih); ImageJPEG ($dst, "small/$filename", 100); imagedestroy($src); } function save_to_db($name, $type) { $link=mysqli_connect ("localhost","root",""); mysqli_connect ("localhost","root","") or die ("Невозможно подключиться к серверу"); mysqli_select_db($link,"gallery") or die("Нет такой таблицы!"); $zapros = "INSERT INTO images SET name='" . $name . "', type='" . $type . "' , clicks='0'"; mysqli_query($link,$zapros); if(mysqli_affected_rows($link) > 0) { echo '<script language="javascript">' . 'alert("Данные сохранены")' . '</script>'; } else { echo "Ошибочка вышла."; } } ?> </body> </html> //gallery.sql -- phpMyAdmin SQL Dump -- version 4.8.3 -- https://www.phpmyadmin.net/ -- -- Хост: 127.0.0.1 -- Время создания: Фев 25 2019 г., 04:45 -- Версия сервера: 10.1.37-MariaDB -- Версия PHP: 7.2.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SE T_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_S ET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CO NNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- База данных: `gallery` -- -- -------------------------------------------------------- -- -- Структура таблицы `images` -- CREATE TABLE `images` ( `id` int(6) NOT NULL, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `clicks` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Дамп данных таблицы `images` -- INSERT INTO `images` (`id`, `name`, `type`, `clicks`) VALUES (2, 'Tulips', 'jpg', '2'), (6, 'iRPT162WZ', 'jpg', '1'); -- -- Индексы сохранённых таблиц -- -- -- Индексы таблицы `images` -- ALTER TABLE `images` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT для сохранённых таблиц -- -- -- AUTO_INCREMENT для таблицы `images` -- ALTER TABLE `images` MODIFY `id` int(6) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_ CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET _RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONN ECTION */; //view_image.php <html> <head> <meta charset="utf-8"> <title>Просмотр изображений</title> </head> <body> <?php $link=mysqli_connect ("localhost","root",""); mysqli_connect ("localhost","root","") or die ("Невозможно подключиться к серверу"); mysqli_select_db($link,"gallery") or die("Нет такой таблицы!"); mysqli_query($link,"SET NAMES 'cp1251'"); mysqli_query($link,"SET CHARACTER SET 'cp1251'"); $getMime = explode('.', $_GET['file_name']); $name = reset($getMime); $row = mysqli_query($link,"SELECT clicks FROM images WHERE name='" . $name . "'"); $data = mysqli_fetch_array($row); $clicks = $data['clicks']; ++$clicks; $zapros="UPDATE images SET clicks='" . $clicks ."' WHERE name='" . $name ."'"; mysqli_query($link,$zapros); $file = "large/" . $_GET['file_name']; echo "<center><img src='$file'></img></center>"; echo "<center><strong>Количество просмотров: $clicks</strong></center>" ?> </body> </html>
0
|
|
| 17.02.2020, 20:55 | |
|
Ответы с готовыми решениями:
9
Добавление изображений разных форматов (gif, jpg, и т.д.) Отрисовка изображений разных форматов
|
|
Невнимательный
|
||
| 17.02.2020, 21:38 | ||
$types = array('jpg', 'png', 'gif', 'bmp', 'jpeg'); ?или не получается прикрутить кроме этой ImageCreateFromJPEG() ещё imagecreatefromgif() imagecreatefrompng() imagecreatefrombmp() или просто imagecreatefromstring() Что-то как-то не работает?
0
|
||
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
|
| 19.02.2020, 14:41 [ТС] | |
|
Эмм...При запуске выходят ошибки:
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
||||||||||||||||
| 19.02.2020, 15:11 [ТС] | ||||||||||||||||
|
По идее он должен отображать все изображения, сохранённые в базе gallery
Добавлено через 4 минуты
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
|
| 19.02.2020, 15:21 [ТС] | |
|
Базу данных из library2 перевёл в gallery. В БД данные добавляются. Но вместо отображения выскакивают ошибки
0
|
|
|
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
|
||||||||||||||||||||||||||||||||||
| 19.02.2020, 19:59 | ||||||||||||||||||||||||||||||||||
|
так получается, когда делаешь то, что еще не понимаешь. ну как говорится повторение мать учения. не обижайтесь. смотрите по-порядку разбор кода. файл dbconnection.php. зачем там переменные
5) зачем _target -окна разводить, лучше откройте в том же окне, а из файла view_image.php сделать возвратную ссылку на index.php 6) что там делает странный тег <img> в-общем, строки с 18 по 38 можно переписать так
поэтому дольше код так примерно
$name = reset($getMime); лучше заменить на $getMime[0]; в-общем исправьте это, а остальные мелочи потом
0
|
||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
||||||
| 21.02.2020, 08:52 [ТС] | ||||||
|
Код изменил...примерно.
Вышла ошибка: Parse error: syntax error, unexpected 'if' (T_IF) in C:\Users\User\Desktop\OSPanel\domains\ga llery\index1.php on line 67 Код:
На 65 добавил в конце закрывающую круглую скобку-вышла ошибка: Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\Users\User\Desktop\OSPanel\domains\ga llery\index1.php on line 22
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
|
| 21.02.2020, 09:29 [ТС] | |
|
По информации из интернета добавил вначале код:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); Вышло при запуске:
0
|
|
|
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
|
|
| 21.02.2020, 09:30 [ТС] | |
|
Наверное, я делаю что то не так
0
|
|
|
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
|
||||||
| 21.02.2020, 11:11 | ||||||
Сообщение было отмечено Linar1 как решение
Решение
сейчас все мелочи доделаем. посмотрите в myphpadmin базу library2 - есть ли в ней таблица images?
весь код перепишите примерно так
0
|
||||||
| 21.02.2020, 11:11 | |
|
Помогаю со студенческими работами здесь
10
Связь GIF и mp-3 форматов Код конвертации форматов PCX GIF, TIFF в BMP Поиск файлов форматов pdf, jpg, png в папке и подпапках Gif в кучу jpg Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|