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

Добавление изображений разных форматов (gif, jpg, и т.д.)

17.02.2020, 20:55. Показов 2030. Ответов 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
3107 / 1276 / 358
Регистрация: 08.02.2013
Сообщений: 7,443
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru