Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87

Загрузка фотографий на хост с админки

02.07.2012, 04:19. Показов 3024. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Помогите начинающему программисту доделать наконец-то свою CMS.


Есть в БД 5 полей
  1. id
  2. title - название альбома
  3. text - описание альбома
  4. avatar - маленькое фото альбома 150х150px
  5. img - адреса изображений

Проблема заключается в следующем.
  1. Как загрузить фотографии
  2. Как создать для каждого альбома отдельную папку (желательно)
  3. Как уменьшить фотографию альбома
  4. Как сделать миниатюры с потерей качества для меньшего размера всех фотографий альбома

Заранее спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.07.2012, 04:19
Ответы с готовыми решениями:

Загрузка фотографий
Привет всем. Подскажите пожалуйста лучший на ваш взгляд скрипт для загрузки фотографий. Сайт на php.

Асинхронная загрузка фотографий разные подходы
Подскажите правильно ли я понимаю механизм На некоторых сайта загрузка фотографий происходит следующим образом: человек кидает...

Загрузка фотографий в БД
Здравствуйте, уважаемые специалисты!! Кратко о теме: решил создать внутреннюю Базу Данных о сотрудниках компании. Поступило...

9
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
02.07.2012, 10:50
Цитата Сообщение от jumper423 Посмотреть сообщение
Как загрузить фотографии
http://www.w3schools.com/php/php_file_upload.asp
Цитата Сообщение от jumper423 Посмотреть сообщение
Как создать для каждого альбома отдельную папку (желательно)
PHP
1
2
if (!is_dir($album))
 mkdir($album);
Цитата Сообщение от jumper423 Посмотреть сообщение
Как уменьшить фотографию альбома
Как сделать миниатюры с потерей качества для меньшего размера всех фотографий альбома
"php + image resize class" в гугл вбей
1
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
02.07.2012, 15:23  [ТС]
Буду пробывать.
Сделаю отпишусь.
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
02.07.2012, 18:49  [ТС]
С загрузкой одного файла разобрался, а вот как сразу несколько загрузить?

Вот части кода. Как работать с массивом для добавления файлов?

HTML5
1
2
3
4
5
6
7
8
9
            <label for="file">Выберите файл: </label>
            <input type="file" name="file[]" id="file" />
            <br /><br />
            <label for="file">Выберите файл: </label>
            <input type="file" name="file[]" id="file" />
            <br /><br />
            <label for="file">Выберите файл: </label>
            <input type="file" name="file[]" id="file" />
            <br /><br />
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
                
if ($_FILES["file"]["error"] > 0)
        {
            echo "Файл с таким именем: " . $_FILES["file"]["error"] . " уже существует<br />";
        }
else
        {   
            if (file_exists("../../img/albums/" . $_FILES["file"]["name"]))
                {
                    echo $_FILES["file"]["name"] . " already exists. ";
                }
            else
                {
                    move_uploaded_file($_FILES["file"]["tmp_name"],
                    "../../img/albums/" . $_FILES["file"]["name"]);
                    echo "Файл: " . $_FILES["file"]["name"]. " успешно добавлен в /img/albums/<br />" ;
                }
        }
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
03.07.2012, 16:48
ну я делал как-то так:
PHP
1
2
3
4
5
6
7
8
9
10
11
  for ($i = 0; $i < 4; $i++){
    if(empty($_FILES['ff']['tmp_name'][$i])) continue;
    $fopen = fopen($_FILES['ff']['tmp_name'][$i], "r");
    if ($fopen){
      echo ($i+1).". all is goooood :)<br />";
      echo "<b>name:</b> ".$_FILES['ff']['name'][$i]."<br />";
      echo "<b>size:</b> ".$_FILES['ff']['size'][$i]."<br /><br />";
      fclose($fopen);
    }
    else echo ($i+1).". Can't open uploaded file!<br /><br />";
  }
HTML5
1
2
3
4
5
6
7
<form method="post" action="" enctype="multipart/form-data">
  1. <input type="file" name="ff[]" /> <br />
  2. <input type="file" name="ff[]" /> <br />
  3. <input type="file" name="ff[]" /> <br />
  4. <input type="file" name="ff[]" /> <br />
  <input type="submit" name="Submit" value="use file" />
</form>
одно но: пока файл не загрузится на сервер, форма "висит".
1
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
03.07.2012, 17:00  [ТС]
Спасибо большое.
Буду доделывать альбомы.
0
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
05.07.2012, 00:48  [ТС]
Как в move_uploaded_file задать путь сохранения файла используя переменные.
Я пробывал так.

Подскажите что надо исправить?



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
                            if (is_dir("../../img/albums/".$album."/"))
                                echo "Дерикротия img/albums/".$album."/ уже существует";
                            else
                                {
                                mkdir("../../img/albums/".$album."/");
                                $album = "../../img/albums/".$album."/";
                                for ($i = 0; $i <= $h; $i++)
                                    {
                                        if(empty($_FILES['file']['tmp_name'][$i])) continue;
                                        $fopen = fopen($_FILES['file']['tmp_name'][$i], "r");
                                        if ($fopen)
                                            {   
                                                if (file_exists("$album.$i+1 .'.jpg'"))
                                                    {
                                                        echo $i.".jpg уже существует. <br />";
                                                    }
                                                else
                                                    {
                                                        move_uploaded_file($_FILES["file"]["tmp_name"][$i],
                                                        "$album .$i+1 .'.jpg'");
                                                        echo "Файл: " . $i+1 .".jpg  успешно добавлен в ".$album."<br />" ;
                                                    }
                                                fclose($fopen);
                                            }
                                        else echo ($i+1).". Can't open uploaded file!<br /><br />";
                                    }
                                }
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
05.07.2012, 09:50
ну, во-первых,
PHP
1
2
3
4
5
"../../img/albums/".$album."/"
// лучше записать так
"../../img/albums/$album/"
// или так
'../../img/albums/' . $album . '/'
читать (строки, синтаксис, одинарные и двойные кавычки)
дальше по ошибке:
PHP
1
2
3
4
5
6
move_uploaded_file($_FILES["file"]["tmp_name"][$i], "$album .$i+1 .'.jpg'");
// и тут с кавычками намутил. надо было попроще
move_uploaded_file($_FILES["file"]["tmp_name"][$i], $album . $i+1 . '.jpg');
// вторым параметром будет строка, что нам и надо
// аналогично надо сделать и в 
file_exists($album . $i+1 . '.jpg')
Добавлено через 17 минут
и да, в своём примере я использовал ", где можно(и нужно) было использовать одинарные.
оно работает, но лучше заменить или же всунуть в них переменные.
(скрипт старый, когда я ещё не знал разницы ' и ")
1
 Аватар для jumper423
3 / 3 / 1
Регистрация: 01.03.2011
Сообщений: 87
05.07.2012, 20:22  [ТС]
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
if (is_dir("../../img/albums/".$album."/"))
                                echo "Дерикротия img/albums/".$album."/ уже существует";
                            else
                                {
                                mkdir("../../img/albums/".$album."/");
                                for ($i = 0; $i <= $h; $i++)
                                    {
                                        if(empty($_FILES['file']['tmp_name'][$i])) continue;
                                        $fopen = fopen($_FILES['file']['tmp_name'][$i], "r");
                                        if ($fopen)
                                            {   
                                                if (file_exists('../../img/albums/' . $album . '/'.$i+1 .'.jpg'))
                                                    {
                                                        echo $i.".jpg уже существует. <br />";
                                                    }
                                                else
                                                    {
                                                        move_uploaded_file($_FILES["file"]["tmp_name"][$i],
                                                        '../../img/albums/' . $album . '/' .$i+1 .'.jpg');
                                                        echo "Файл: " . $i+1 .".jpg  успешно добавлен в ../../img/albums/" . $album . "/<br />" ;
                                                    }
                                                fclose($fopen);
                                            }
                                        else echo ($i+1).". Can't open uploaded file!<br /><br />";
                                    }
                                }
Поменял. Пишет что файлы уже существуют. Хотя их нет.
Как это может быть?


Оказывается причина была в том что я писал $i+1. Убрал +1 и всё заработало.

Добавлено через 3 часа 57 минут
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
if (is_dir("../../img/albums/".$album."/"))
                                echo "Дерикротия img/albums/".$album."/ уже существует";
                            else
                                {
                                mkdir("../../img/albums/".$album."/");
                                $sql = null;
                                for ($i = 0; $i <= $h; $i++)
                                    {
                                        $k=$i+1;
                                        if(empty($_FILES['file']['tmp_name'][$i])) continue;
                                        $fopen = fopen($_FILES['file']['tmp_name'][$i], "r");
                                        if ($fopen)
                                            {
                                                if (file_exists('../../img/albums/' . $album . '/'.$k .'.jpg'))
                                                    {
                                                        echo $k.".jpg уже существует. <br />";
                                                    }
                                                else
                                                    {
                                                        move_uploaded_file($_FILES["file"]["tmp_name"][$i],
                                                        '../../img/albums/' . $album . '/' .$k .'.jpg');
                                                        echo "Файл: " . $k .".jpg  успешно добавлен в /img/albums/" . $album . "/<br /><img src='../../img/albums/" . $album . "/" .$k .".jpg'><br />" ;
                                                        $sql = $sql."<img src='img/albums/" . $album . "/" .$k .".jpg'>";
                                                    }
                                                fclose($fopen);
                                            }
                                        else echo ($i+1).". Can't open uploaded file!<br /><br />";
                                    }
                                    if ($sql!=null)
                                        {
                                            $insert = mysql_query("INSERT INTO gallery (title,text,img) VALUES ('$title','$text','$sql')");
                                            if($insert)
                                                echo "Альбом успешно добавился в БД";
                                            else echo "Альбом не добавился в БД";
                                        }
                                    else echo "Вы не выбрали ни один файл";
                                }
Не хочет вставляться в таблицу информация.
PHP
1
$insert = mysql_query("INSERT INTO gallery (title,text,img) VALUES ('$title','$text','$sql')");
Методом проб понял что это из за $sql.
Когда вместо него ставлю к примеру '123' , то всё работает.
Как исправить это проблему?
0
217 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 614
05.07.2012, 22:14
эта переменная имеет одинарные кавычки, получается как бы sql-инъекция.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2012, 22:14
Помогаю со студенческими работами здесь

Загрузка фотографий
Добрый день! пожалуйста, подскажите как по нажатию кнопки загрузить фотографию, выбрав её у себя на компьютере.???? Заранее очень...

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

Загрузка фотографий
Мне нужно добавить в Новости информацию и отобразить фотографии (их много где 20 шт). Загружаю с жесткого диска на сервер фотографии и...

Загрузка на Хост готового сайта
Если я на локале соберу сайт, после загрузки на хост могут ли возникнуть проблемы по устаноке с данными? ведь устанавливая на хост я удалил...

загрузка фотографий в интернет
Помогите загрузить фотографию на страницу в интернете


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru