Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
1

Загрузка изображения

15.03.2015, 23:26. Показов 586. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Подскажите, как выполнить следующую задачу (или дайте ссылку с описанием):
В БД есть строковое поле image, которая хранит ссылку на изображение. В админке при добавлении, например, сотрудника, необходимо указать его фото. Насколько я понял, нужно поле input с типом file. Возможно ли реализовать следующую последовательность:

- нажимается кнопка "Обзор"
- выбирается фото с рабочего стола
- после заполнения всех остальных данных нажимается кнопка "Сохранить" (форма отправляется на обработку)
- фотка загружается в папку с сайтом (например, в images/employee)
- присваивается этой фотке имя и в БД заносится путь к этой фотке

Или подскажите, как по-другому (правильнее) можно загрузить изображение в папку сайта и в базу данных?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2015, 23:26
Ответы с готовыми решениями:

Загрузка картинок с сжатием и конвертированием изображения + массовая загрузка
Приветствую форумчане Я можно сказать что новичок в PHP но сайты пишу уже давно, и столкнулся с...

Загрузка изображения (только изображения)
Нужно обычная форма через которую надо загружать изображение в папку load Вот что я пока что...

Загрузка изображения
Помогите исправить, запрос выдает 0No file uploaded 1, в логах PHP Notice: Undefined index: file...

Загрузка изображения
Как загрузить изображения и не обновляя страницу его показать? Второе. Как загрузить несколько...

4
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
16.03.2015, 09:20 2
Так обычно и реализуется, как сделать - читайте тут.
0
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
16.03.2015, 16:03  [ТС] 3
Спасибо за ссылку. Вы не подскажите, как лучше это реализовать:

Сделал форму добавления автора:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="save_author.php" method="post" enctype="multipart/form-data">
                <p>
                    <label for="name">Полное имя автора: <br /></label>
                    <input type="text" name="name" class="textInput" />
                </p>
                <p>
                    <label for="description">Описание автора (с тегами): <br />
                    <textarea name="description" cols="100" rows="20"></textarea>
                    </label>
                </p>
                <p>
                    <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
                    <label for="image">Фото автора: <br /></label>
                    <input type="file" name="image" class="textInput" />
                </p>          
                <p>
                    <input type="submit" name="submit" value="Добавить автора" />
                </p>
</form>
Код страницы обработчика save_author.php

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
<?
    require '../include/db.php';
    require '../include/functions.php';
    
    if(isset($_POST['name'])) $name = clearStr($_POST['name']);
    if(isset($_POST['description'])) $description = $_POST['description'];
    //if(isset($_POST['image'])) $image = clearStr($_POST['image']);
        
    switch($_FILES['image']['type'])
    {
        case 'image/jpeg': $ext = '.jpg'; break; 
        case 'image/gif': $ext = '.gif'; break;
        case 'image/png' : $ext = '.png'; break;
        default: $ext = ''; break;
    }
    
    if ($ext)
    {   
        $uploaddir = '../images/';
        $uploadfile = $uploaddir . $_POST['name'] . $ext;
        
        $image = 'images/' . $_POST['name'] . $ext;
        
        if (!move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile))
            exit("Изображение не удалось загрузить!");
    }
    else {
        exit("Неверный формат файла!");
    }
      
    
    if(!addAuthor($name, $description, $image))
    {
        exit('Произошла ошибка при добавлении автора');
    }
    else
    {
        header('Location: view_author.php');
        exit;
    }
Сначала я думал, что можно будет задавать имя изображению как имя автора. Но возникли проблемы с написанием русских символов, да и мне кажется, что лучше было бы присваивать имя изображению равное id этого автора. Так вообще возможно сделать или как лучше именовать изображения?
0
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
16.03.2015, 16:07 4
Вариантов много, ваш вполне подходит.

site.ru/images/avatars/12345.png (где 12345 - идентификатор автора).
0
23 / 23 / 11
Регистрация: 04.12.2012
Сообщений: 579
16.03.2015, 16:18  [ТС] 5
По моему коду просто сначала сохраняется изображение, а потом автор заносится в базу данных) То есть мне лучше сначала добавить автора в БД, потом сделать запрос, возвращающий последний добавленный id (у меня там автоинкримент стоит) и только потом сохранить изображение с этим id?)
0
16.03.2015, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2015, 16:18
Помогаю со студенческими работами здесь

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

загрузка изображения
&lt;?PHP include (&quot;blocks/bd.php&quot;); $nomer = $_POST; $nlf = $_POST; ...

Загрузка изображения
Всем привет, есть код: &lt;?PHP #ini_set('error_reporting', E_ALL); #ini_set('display_errors',...

Загрузка изображения
Помогите реализовать следующую задачу: Отправляю изображение через форму: &lt;input name=&quot;photo&quot;...


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

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