Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
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'>&nbsp
<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
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2020, 20:55
Ответы с готовыми решениями:

Добавление изображений разных форматов (gif, jpg, и т.д.)
Здравствуйте. Даны следующие файлы, которые работают с изображениями. Как сделать так, чтобы можно было работать с разными форматами...

Отрисовка изображений разных форматов
С помощью чего можно отрисовать jpeg,png,gif в окне приложения ? С помощью HBITMAP пробовал - работает только с bmp. Находил в...

Сохранение изображений в формате png, gif, jpg, bmp
Сохраняя изображение из PictureBox в файл мы получаем несжатый битовый образ независимо от того какое расширение файла указываем. ...

9
Невнимательный
 Аватар для ft4l
3112 / 1291 / 359
Регистрация: 08.02.2013
Сообщений: 7,567
Записей в блоге: 2
17.02.2020, 21:38
Цитата Сообщение от Linar1 Посмотреть сообщение
разные форматы изображений
Типа больше чем это $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  [ТС]
Эмм...При запуске выходят ошибки:
Миниатюры
Добавление изображений разных форматов (gif, jpg, и т.д.)  
0
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
19.02.2020, 15:11  [ТС]
По идее он должен отображать все изображения, сохранённые в базе gallery

Добавлено через 4 минуты
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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;
    }
?>
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
<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'>&nbsp
                                    <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>

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
<html>
    <head>
        <meta charset="utf-8">
        <title>Просмотр изображений</title>
    </head>
    <body>
        [PHP]<?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>"
        ?>[/PHP]
    </body>
</html>
0
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
19.02.2020, 15:21  [ТС]
Базу данных из library2 перевёл в gallery. В БД данные добавляются. Но вместо отображения выскакивают ошибки
Миниатюры
Добавление изображений разных форматов (gif, jpg, и т.д.)  
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
19.02.2020, 19:59
так получается, когда делаешь то, что еще не понимаешь. ну как говорится повторение мать учения. не обижайтесь. смотрите по-порядку разбор кода. файл dbconnection.php. зачем там переменные
Цитата Сообщение от Linar1 Посмотреть сообщение
$localhost = "localhost";
    $db = "library2";
    $user = "root";
    $password = "";
они же нигде не используются. надо было примерно так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$localhost = "localhost";
    $db = "library2";
    $user = "root";
    $password = "";
    $link = mysqli_connect($localhost, $user, $password, $db);
    if (!$link)
    {
        echo "Нет соединения с сервером" . PHP_EOL;
        echo "Код ошибки errno: ". mysqli_connect_errno(). PHP_EOL;
        echo "Текст ошибки error: ". mysqli_connect_error(). PHP_EOL;
        exit;
    }
    // задаем кодировку utf-8
    mysqli_set_charset($link, "utf8");
дальше основной файл. 1) require_once "dbconnection.php"; надо делать перед формированием страницы, иначе в случае ошибки подключения будет выведена неработающая форма. 2) $_FILES надо обрабатывать до вывода списка файлов, значит его тоже надо вверх, сразу после require_once "dbconnection.php". думайте сами - вы отправили файл на сервер, а добавляете его в базу только после вывода информации. разве не понятно. 3) строчки 20-27 вы забабахали, чтобы сортировать список файлов по возрастанию просмотров. но эти строки не нужны. надо просто сделать такой запрос
PHP
1
$rows = mysqli_query($link, "SELECT * FROM images ORDER BY clicks");
4) scandir -что вообще делает, если названия файлов у вас в базе.
5) зачем _target -окна разводить, лучше откройте в том же окне, а из файла view_image.php сделать возвратную ссылку на index.php
6) что там делает странный тег <img>
в-общем, строки с 18 по 38 можно переписать так
PHP
1
2
3
4
5
$rows = mysqli_query($link, "SELECT * FROM images ORDER BY clicks");
while ($data = mysqli_fetch_array($rows))  {
    echo "<a href='view_image.php?base=img_view&file_name=".$data['name']."' >&nbsp
                                    <img src='./small".$data['name']."'  width='100' height='111'></a>";
}
7) _FILES - глобальный массив, поэтому передавать его параметром в функции can_upload не имеет смысла. сделайте ее без параметров. 8)
Цитата Сообщение от Linar1 Посмотреть сообщение
if($file['name'] == '')
                    return 'Вы не выбрали файл.';
                if($file['size'] == 0)
                    return '';
в can_upload перепишите так:
PHP
1
2
3
if ($_FILES['file']['error']) {
    return $_FILES['file']['error'];
}
9) в функции make_upload второе copy не нужно - там вы создаете уменьшенные копии.
поэтому дольше код так примерно
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
copy($file['tmp_name'], 'large/' . $file['name']);
$filename = $file['name'];
$size=GetImageSize ("large/$filename");
$ext = strtoupper(pathinfo($filename, PATHINFO_EXTENSION));
if (in_array($ext, ['BMP', 'GIF', 'JPG', 'JPEG', 'PNG')) {
   if ($ext == 'JPG') {
        $ext = 'JPEG';
   }
   $from_img = 'ImageCreateFrom'.$ext;
   $make_img = 'Image'.$ext;
} 
$src=$from_img("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);
$make_img ($dst, "small/$filename", 100);
imagedestroy($src);
10) вы сохраняете файлы в одну базу данных, считываете из другой. логично. зачем вы в функции save_to_db подключаетесь снова, когда есть файл dbconnection.php.
Цитата Сообщение от Linar1 Посмотреть сообщение
$link=mysqli_connect ("localhost","root","");
                mysqli_connect ("localhost","root","") or die ("Невозможно подключиться к серверу");
                mysqli_select_db($link,"gallery") or die("Нет такой таблицы!");
вместо этого надо просто
PHP
1
require_once "dbconnection.php";
11) теперь просмотр изображений. зачем там в базе данных кодировка cp1251, когда везде utf-8. зачем снова подключение писать, когда можно просто require_once "dbconnection.php";
$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

Код:
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
<?php
    require_once "dbconnection.php";
    $files = scandir('small/');
?>
<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
            $rows = mysqli_query($link, "SELECT * FROM images ORDER BY clicks");
            while ($data = mysqli_fetch_array($rows))
            {
                echo "<a href='view_image.php?base=img_view&file_name=".$data['name']."' >&nbsp
                    <img src='./small".$data['name']."'  width='100' height='111'></a>";
            }
            if(isset($_FILES['file']))
            {
                $check = can_upload();
                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 ($_FILES['file']['error'])
                {
                    return $_FILES['file']['error'];
                }
                $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']);
                $filename = $file['name'];
                $size=GetImageSize ("large/$filename");
                $ext = strtoupper(pathinfo($filename, PATHINFO_EXTENSION));
                if (in_array($ext, ['BMP', 'GIF', 'JPG', 'JPEG', 'PNG'])
                {
                    if($ext == 'JPG')
                    {
                        $ext = 'JPEG';
                    }
                    $from_img = 'ImageCreateFrom'.$ext;
                    $make_img = 'Image'.$ext;
                }
                $src=$from_img("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);
                $make_img ($dst, "small/$filename", 100);
                imagedestroy($src);
            }
            function save_to_db($name, $type)
            {
                require_once "dbconnection.php";
                $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>
Добавлено через 13 минут
На 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);

Вышло при запуске:
Миниатюры
Добавление изображений разных форматов (gif, jpg, и т.д.)  
0
0 / 0 / 0
Регистрация: 16.02.2020
Сообщений: 28
21.02.2020, 09:30  [ТС]
Наверное, я делаю что то не так
0
 Аватар для vinikon
340 / 160 / 89
Регистрация: 16.01.2020
Сообщений: 771
21.02.2020, 11:11
Лучший ответ Сообщение было отмечено Linar1 как решение

Решение

сейчас все мелочи доделаем. посмотрите в myphpadmin базу library2 - есть ли в ней таблица images?
весь код перепишите примерно так
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
<?php
require_once "dbconnection.php";
if (isset($_FILES['file'])) {
    $check = can_upload();
    if ($check === true) {
        make_upload();
        $getMime = explode('.', $_FILES['file']['name']);
        $mime = strtolower(end($getMime));
        $name = reset($getMime);
        save_to_db($_FILES['file']['name'], $mime);
        echo '<script language="javascript">' .
        'alert("Файл загружен")' .
        '</script>';
    } else {
        echo "<strong>ошибка загрузки файла</strong><br /><br />";
    }
}
function can_upload()
{
    if ($_FILES['file']['error']) {
        return $_FILES['file']['error'];
    }
    $getMime = explode('.', $_FILES['file']['name']);
    $mime = strtolower(end($getMime));
    $types = array('jpg', 'png', 'gif', 'bmp', 'jpeg');
    if (!in_array($mime, $types)) {
        return 'Недопустимый тип файла.';
    }
    return true;
}
function make_upload()
{
    copy($file['tmp_name'], './large/' . $_FILES['file']['name']);
    $size=GetImageSize ('./large/'.$_FILES['file']['name']);
    $ext = strtoupper(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
    if ($ext == 'JPG') {
       $ext = 'JPEG';
    }
    $from_img = 'ImageCreateFrom'.$ext;
    $make_img = 'Image'.$ext;
    $src=$from_img('./large/'.$_FILES['file']['name']);
    $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);
    $make_img ($dst, './small/'.$_FILES['file']['name']);
    imagedestroy($src);
    return true;
}
function save_to_db($name, $type)
{
    require_once "dbconnection.php";
    $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 "Ошибочка вышла.";
    }
}
?>
<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
    $rows = mysqli_query($link, "SELECT * FROM images ORDER BY clicks");
    if (mysqli_num_rows($rows)) {
        while ($data = mysqli_fetch_array($rows)) {
            echo "<a href='view_image.php?base=img_view&file_name=".$data['name']."' >&nbsp<img src='./small/".$data['name']."'  width='100' height='111'></a>";
        }
    }
    ?>
</body>
</html>
к сожалению, проверить некогда. отпишитесь о результатах - все настроим
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2020, 11:11
Помогаю со студенческими работами здесь

Посоветуйте хороший компрессор изображений jpg, png, gif
Нужна программка для пакетной оптимизации изображений форматов jpg, png, gif. На примере сайта http://www.punypng.com/ только офлайн...

Связь GIF и mp-3 форматов
SOS:ПРОШУ помощи в написании асм-текста связи GIF и mp-3 форматов

Код конвертации форматов PCX GIF, TIFF в BMP
Доброго времени. Подскажите пожалуйста код конвертации форматов PCX GIF, TIFF в BMP в программной среде Delphi. И если можно,напишите по...

Поиск файлов форматов pdf, jpg, png в папке и подпапках
Доброго дня господа! Подскажите мне пожалуйста, как мне можно найти файлы форматов в папке и под папках не зная точного имени файла. ...

Gif в кучу jpg
Честно говоря, не знал в какой раздел запостить, так что заранее извиняюсь если не туда. Так вот, как можно выделить каждый кадр в гифке...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
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
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru