Лучший отвечающий
Как записывать картинку в базу данных и считывать.

Вопрос
-
Как записывать картинку из формы на сайте в базу данных и считывать.
<input name="Image" type="file" accept="image/*" value="@Image"/>
25 июня 2013 г. 12:15
Ответы
-
Это передача файла на сервер. там Вы найдете что Вам нужно.
По поводу сохранения картинок в бд - можно, но не желательно (это отражается на роизводительности). Лучше хранить картинки в файловой системе, а в базе хранить путь к ним или просто название картинок.
- Изменено Higgs.Boson 25 июня 2013 г. 12:35 Исправление
- Предложено в качестве ответа YatajgaModerator 25 июня 2013 г. 18:22
- Помечено в качестве ответа Континент 1 июля 2013 г. 11:03
25 июня 2013 г. 12:35
Все ответы
-
Это передача файла на сервер. там Вы найдете что Вам нужно.
По поводу сохранения картинок в бд - можно, но не желательно (это отражается на роизводительности). Лучше хранить картинки в файловой системе, а в базе хранить путь к ним или просто название картинок.
- Изменено Higgs.Boson 25 июня 2013 г. 12:35 Исправление
- Предложено в качестве ответа YatajgaModerator 25 июня 2013 г. 18:22
- Помечено в качестве ответа Континент 1 июля 2013 г. 11:03
25 июня 2013 г. 12:35 -
По поводу сохранения картинок в бд - можно, но не желательно (это отражается на роизводительности). Лучше хранить картинки в файловой системе, а в базе хранить путь к ним или просто название картинок.
И как это сделать?25 июня 2013 г. 13:08 -
Идея проста, не стану расписывать, вот ссылка, оттуда все понятно. Можете модифицировать под Ваши требования25 июня 2013 г. 16:38
-
Спасибо. А нет ли на MVC?25 июня 2013 г. 17:18
-
Чтоб комплексно MVC+запись данных, мне кажется в инете что угодно можно найти. Но я Вам скинул две ссылки. Первая - решение для MVC сброс файла на сервер, а вторая - сохранение файла на сервере.25 июня 2013 г. 17:32
-
В первом примере всё подробно расписано, попробуйте посмотреть его ещё раз.
Сделаем содержимое сообщества лучше, вместе!
25 июня 2013 г. 18:22Модератор -
Что конкретно у вас не получается?
Сделаем содержимое сообщества лучше, вместе!
27 июня 2013 г. 11:20Модератор -
Этот код записывает картинку в базу.
var UploadedImage = Request.Files[0]; byte[] Image; if (Path.GetFileName(UploadedImage.FileName) != String.Empty) { var ContentType = UploadedImage.ContentType; var ContentLength = UploadedImage.ContentLength; var InputStream = UploadedImage.InputStream; Image = new byte[ContentLength]; InputStream.Read(Image, 0, ContentLength); } else { Image = new byte[0]; }
А этот код считывает картинку.
if(Request["Id"].IsInt())
{
var Images = db.QuerySingle(selectQueryString, Request["Image"].AsInt()); Response.BinaryWrite((byte[])Images.Image);
}
В принципе надо, до закачки в базу, уменьшить её до, например: width:100px Чтоб место не занимала.
И вывести в определённое место сайта. Но этого не выходит.
Вот сам вывод на страницу:
if (row.Image != null) { <img src="ShowImage.cshtml?Id=@row.Id" /> }
Но изображение не выводится...
Всё брал отсюда: http://evonet.com.au/webmatrix-uploading-images-with-the-fileupload-helper/
- Изменено Континент 27 июня 2013 г. 16:21 Изменение
27 июня 2013 г. 11:33 -
По идее мне надо выводить картинку в этот код:
Вместо @row.Image надо вывести картинку, а она зараза не выводится.@foreach (var row in db.Query(selectQueryString)){ <div> <div>@row.Name</div> <div> @row.Image
</div> <div>@row.Text</div> </div> }
Вместо неё надпись: System.Byte[] Видимо @foreach перебивает.
Что делать?27 июня 2013 г. 18:04 -
"В принципе надо, до закачки в базу, уменьшить её до, например: width:100px Чтоб место не занимала." - сжать без потери качества обычно не всегда получится, поэтому лучше оставить так. Вам нужно байты преобразовать в картинку. Вот пример преобразования. А уже на странице указываете ссылку на этот рисунок.
Сделаем содержимое сообщества лучше, вместе!
27 июня 2013 г. 19:02Модератор -
Это передача файла на сервер. там Вы найдете что Вам нужно.
И куда это всё засовывать? В какой файл?28 июня 2013 г. 5:48 -
Идея проста, не стану расписывать, вот ссылка, оттуда все понятно. Можете модифицировать под Ваши требования
И как перевести это в MVC428 июня 2013 г. 5:50 -
В первом примере всё подробно расписано, попробуйте посмотреть его ещё раз.
Сделаем содержимое сообщества лучше, вместе!
Подробно? Куда это всё сувать? В .cs ?28 июня 2013 г. 5:53 -
Плохие Ваши ссылки. В них нет нормальной реализации в MVC4.
Таких страниц в интернете уйма. Но реализовать это в MVC4 нельзя.
28 июня 2013 г. 6:00 -
Ссылка которую привели вы не очень удачная. Я показал лишь часть с декодированием байтов. Но та ссылка, что вам дали в самом начале, от и до показывает весь процесс в MVC, не имеет значения какая это версия.
Сделаем содержимое сообщества лучше, вместе!
28 июня 2013 г. 6:02Модератор -
Ссылка которую привели вы не очень удачная. Я показал лишь часть с декодированием байтов. Но та ссылка, что вам дали в самом начале, от и до показывает весь процесс в MVC, не имеет значения какая это версия.
Сделаем содержимое сообщества лучше, вместе!
Понятно. Но куда этот код вставлять?
Попробовал создать папку App_Code и в ней файл с расширением .cs
В него вставил код. Вылезает целая куча ошибок.
На самой странице не написано куда вставлять код...
ВЫШЕ Я ПРИВОДИЛ КОД. КОТОРЫЙ РАБОТАЕТ.
ЗАПИСЫВАЕТ КАРТИНКУ В БАЗУ.
НО ВОТ С ВЫВОДОМ ПРОБЛЕМА.
if(Request["Id"].IsInt()) { var Images = db.QuerySingle(selectQueryString, Request["Image"].AsInt()); Response.BinaryWrite((byte[])Images.Image); }
В ТАКОМ ВИДЕ КАРТИНКА НЕ ВЫВОДИТСЯ
ЕСЛИ Я УБИРАЮ if(Request["Id"].IsInt()) ТО КАРТИНКА ПРОСТО ВЫВОДИТСЯ ВО ВЕСЬ БРАУЗЕР.
Response.BinaryWrite ПРЕОБРАЗУЕТ ИЗ ДВОИЧНОГО КОДА В КАРТИНКУ И ВЫВОДИТ В HTML.
ВОТ В ЧЁМ ПРОБЛЕМА : ВЫВЕСТИ КАРТИНКУ НА СТРАНИЦУ.
- Изменено Континент 28 июня 2013 г. 6:34 Дополнение
28 июня 2013 г. 6:27