Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 12

Записать картинку в виде массива байтов в базу а потом оттуда вывести на страницу в браузере

04.03.2017, 20:54. Показов 2339. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно записать картинку в виде массива байтов в базу а потом от туда вывести на страницу в браузере!!
Так в проекте реализована страница управления товаром на сайте! Есть кнопка обзор для добавления картинки в базе есть поля для картинки но при нажатии кнопки сохранить в базу записывается все кроме картинки




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
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
<%@ Page Title="" Language="C#" MasterPageFile="~/Pages/Admin/Admin.Master" AutoEventWireup="true" CodeBehind="Mebels.aspx.cs" Inherits="diplom1.Pages.Admin.Mebels" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ListView ID="ListView1" ItemType="diplom1.Models.Mebel" SelectMethod="GetMebel"
        DataKeyNames="mebelId" UpdateMethod="UpdateMebel" DeleteMethod="DeleteMebel"
        InsertMethod="InsertMebel" InsertItemPosition="LastItem" EnableViewState="false"
        runat="server">
        <LayoutTemplate>
              
            <div class="RouterContainer">
                <table id="productsTable">
                    <tr>
                        <th>Название Товара</th>
                        <th>Описание</th>
                        <th>фото товара</th>
                        <th>Категория</th> 
                        <th>Цена</th>
                    </tr>
                    <tr runat="server" id="itemPlaceholder"></tr>
                </table>
            </div>
        </LayoutTemplate>
    
        <ItemTemplate>
            <tr>
                <td><%# Item.Name %></td>
                <td class="description"><span><%# Item.Description %></span></td>
                <td><%# Item.ImageData %></td>
                <td><%# Item.Category %></td>
                
                <td><%# Item.Price.ToString("c") %></td>
                <td>
                    <asp:Button ID="Button1" CommandName="Edit" Text="Изменить" runat="server" />
                    <asp:Button ID="Button2" CommandName="Delete" Text="Удалить" runat="server" />
                </td>
            </tr>
        </ItemTemplate>
        <EditItemTemplate>
            <tr>
                <td>
                    <input name="name" value="<%# Item.Name %>" />
                    <input type="hidden" name="ProductID" value="<%# Item.mebelId %>" />
                </td>
                <td>
                    <input name="description" value="<%# Item.Description %>" /></td>
                <td>
                     <input type="file" name="Image" value="<%# Item.ImageData %>"></td>
                 <td>
                    <input name="category" value="<%# Item.Category %>" /></td>
                 
                <td>
                    <input name="price" value="<%# Item.Price %>" /></td>
                <td>
                    <asp:Button ID="Button3" CommandName="Update" Text="Обновить" runat="server" />
                    <asp:Button ID="Button4" CommandName="Cancel" Text="Отмена" runat="server" />
                </td>
            </tr>
        </EditItemTemplate>
        <InsertItemTemplate>
            <tr>
                <td>
                    <input name="name" />
                    <input type="hidden" name="ProductID" value="0" />
                </td>
                <td>
                    <input name="description" /></td>
                <td><input type="file" name="Image" /></td>
                <td>
                    <input name="category" /></td>
                <td>
                    <input name="price" /></td>
                <td>
                    <asp:Button ID="Button5" CommandName="Insert" Text="Вставить" runat="server" />
                </td>
            </tr>
            
        </InsertItemTemplate>
    
    </asp:ListView>
</asp:Content>
Так реализовано запись в базу
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void SaveMebel(Mebel mebel)
        {
            if (mebel.mebelId == 0)
            {
                mebel = context.Mebel.Add(mebel);
            }
            else
            {
                Mebel dbMebels = context.Mebel.Find(mebel.mebelId);
                if (dbMebels != null)
                {
                    dbMebels.Name = mebel.Name;
                    dbMebels.Description = mebel.Description;
                    dbMebels.Price = mebel.Price;
                    dbMebels.Category = mebel.Category;
                    dbMebels.ImageData = mebel.ImageData;
                    dbMebels.ImageMimeType = mebel.ImageMimeType;
                    
                }
            }
            context.SaveChanges();
        }

и код Mebels.aspx.cs

C#
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
namespace diplom1.Pages.Admin
{
    public partial class Mebels : System.Web.UI.Page
    {
        private Repository repository = new Repository();
 
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
 
        public IEnumerable<Mebel> GetMebel()
        {
            return (IEnumerable<Mebel>)repository.MebelList;
        }
 
 
        public void UpdateMebel(int mebelID)
        {
           diplom1.Models.Mebel myMebel = repository.MebelList
                .Where(p => p.mebelId == mebelID).FirstOrDefault();
            if (myMebel != null && TryUpdateModel(myMebel,
                new FormValueProvider(ModelBindingExecutionContext)))
            {
                repository.SaveMebel(myMebel);
            }
        }
 
        public void DeleteMebel(int mebelID)
        {
            diplom1.Models.Mebel myMebel = repository.MebelList
                .Where(p => p.mebelId == mebelID).FirstOrDefault();
            if (myMebel != null)
            {
                repository.DeleteGame(myMebel);
            }
        }
 
        public void InsertMebel()
        {
            diplom1.Models.Mebel myMebel = new Mebel();
            if (TryUpdateModel(myMebel,
                new FormValueProvider(ModelBindingExecutionContext)))
            {
                repository.SaveMebel(myMebel);
            }
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.03.2017, 20:54
Ответы с готовыми решениями:

Как сохранить картинку в базу данных а потом её оттуда загрузить?
Вопрос начинающего: Как сохранить картинку в базу данных а потом её оттуда загрузить

Отправить в базу данных - а потом оттуда снимать показания
Есть база данных mysql: &quot;аре&quot; - и я создал там таблицу &quot;аон&quot; И есть у меня данные - такие как vfn fhhggh fdgfg dsds sdf ...

Сохранить строку байтов в картинку и записать на сервер
Под андроид пишем приложение. Одна из функций - получить изображение с камеры и отправить на сервер, вместе с ост. данными (в формате...

9
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,947
05.03.2017, 08:41
semedios21, очень и очень неудачная идея хранить изображения товаро в БД. Ладно бы что-то не часто используемое, но не изображение товара. Это будет работать, мягко говоря, небыстро.
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 12
05.03.2017, 11:14  [ТС]
Usara, спасибо за подсказку, а как тогда реализовать добавление картинки в товару через админ панель!!???
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,947
05.03.2017, 11:23
semedios21, слишком общий вопрос.

По идее, изображение должно храниться отдельно на диске, но в доступном для IIS месте, а в БД сохранять имя\id\ссылку. Как там ваша админка устроена я не знаю.

Добавлено через 1 минуту
И да: Mebels, UpdateMebel и тому подобный недоинглишь режет глаза. Мебель по-буржуйски: furniture.
1
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 12
05.03.2017, 18:30  [ТС]
Спасибо возьму во внимание ))

Добавлено через 4 часа 21 минуту
https://professorweb.ru/my/ASP... re/level1/
делал по этому мануалу может все таки посмотришь как добавить картинки к товарам!!
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,947
05.03.2017, 18:59
semedios21, добавление картинки к товару можно зделать разными способами. Тут нет правильного и нерпавильного вариантов. Просто хранить изображение к товару в БД - неэффектино. Такие данные нужны часто (когда пользователь заходит в магазин, ему сразу пару десятков товаров нужно предложить), а поскольку изображение не так уж и мало весит, то объём запрашиваемых данных будет не маленький. При этом, изображение не тот вид данных, что будет часто меняться или учавствовать в сложных запросах.

Нет никаких объективных потребностей хранить, по сути статичные мультимедийные данные, в сложной системе в виде СУБД. От этого нет никакой выгоды, а минусы - пожалуйста.

Храни в СУБД ссылки\идентификаторы изображений и не больше.
0
1 / 1 / 1
Регистрация: 27.01.2014
Сообщений: 16
19.04.2017, 01:09
Как вариант, храни картинки товаров на каком нибудь хостинге (Amazon, Dropbox). В общем вариантов куча, а ссылки на эти картинки храни в БД.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,589
Записей в блоге: 1
21.04.2017, 12:27
Alkemona, так если есть хостинг под сайт, зачем какие-то грабли еще придумывать?
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
21.04.2017, 13:23
Цитата Сообщение от XIST Посмотреть сообщение
Alkemona, так если есть хостинг под сайт, зачем какие-то грабли еще придумывать?
Хорошая практика хранить статик ресурсы на внешних серверах для снижения нагрузки на основной сервер.
- можно глянуть на любые высоко нагруженные системы для примера , разметку на том же ютубе.
0
1 / 1 / 1
Регистрация: 27.01.2014
Сообщений: 16
21.04.2017, 13:27
Я это и имел в виду. У меня например был хостинг(для тестов), где место было ограничено. Вот и приходилось изощряться. Но в основном, хранение документов/графики перекидывают на какой либо внешний ресурс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2017, 13:27
Помогаю со студенческими работами здесь

Как записать объект(или хотя бы его поля ) в файл в бинарном виде и считать оттуда?
В txt файлик коллекцию обьектов записать необходимо, и считать потом оттуда.

Загрузить на сервер (желательно в базу данных) а потом отбразить картинку
Хочу загрузить на сервер(желательно в базу данных) а потом отбразить картинку.С чего начать?

Записать последовательность нулей и единиц в виде байтов
Здравствуйте, очень нужна помощь. Есть список нулей и единиц, и нужно их преобразовать в виде байтов, что бы получить исходный файл. Как...

Как записать json файл в БД и вывести его оттуда
Всем привет. В php я не очень силен, и поэтому возникла такая проблема: я хочу написать php-скрипт, который будет делать запросы в API и...

Необходимо файл (любого расширения) записать в базу данных как массив байтов
Необходимо файл (любого расширения) записать в базу данных в byte форме. И затем взять его (выбрав необходимый из DGV), кликнуть и он...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru