Загрузка картинки в MySQL базу ASP NET MVC 5

323
16 января 2017, 18:40

привет.подскажите как загрузить картинку в базу MySQL. Я к существующей таблице в базе добавил колонку типа MediumBLOB говорят это тип для хранения картинок. Так вот как загрузить картинку туда??? Можно посмотреть тему ASP NET Запрос SQL C# запись в List что бы было понятнее как я пытаюсь это сделать. не много изменил модель Book

public class Book
    {
        // ID книги
        public int Id { get; set; }
        // название книги
        public string Name { get; set; }
        // автор книги
        public string Author { get; set; }
        //картинка книги
        public byte[] Image { get; set; }
        // цена
        public int Price { get; set; }
    }

добавив

public byte[] Image { get; set; }

Вариант с хранением адреса картинки не подойдет так как я хочу через форму добавлять картинку. Подскажите как правильно

Answer 1

Правильно сделать DTO класс:

public class BookDto
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Author { get; set; }
    // Вашу картинку можно достать так
    public HttpPostedFileBase Image { get; set;}
    public int Price { get; set; }
}

А Book сделать таким:

public class Book
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Author { get; set; }
    // Путь к картинке
    public string ImageUrl { get; set; }
    public int Price { get; set; }
}

Далее метод Вашего контроллера будет выглядеть, примерно, так:

public ActionResult CreateBook(BookDto bookDto)
{
    string fileName = bookDto.Image.FileName;
    string path = ControllerContext.HttpContext.Server.MapPath($"~/{fileName}");
    using(FileStream stream = File.Create(path))
        bookDto.Image.InputStream.CopyTo(stream);
    Book book;
    // приведение к Book нашего BookDto
    db.Books.Add(book);
    db.SaveChanges();
    return View(bookDto);
}
READ ALSO
Условие - пока не [требует правки]

Условие - пока не [требует правки]

Если тхт1 имеет строку 57, и в тхт2 есть строки от 00 до 09(01, 02, 03, 04,(запятая как энтер) итдто софт должен считать каждую строку , хешарнуть ее и сравнить...

357
Делегаты и элементы формы в VS2015. Теория

Делегаты и элементы формы в VS2015. Теория

Добрый деньЧитаю книгу Пола Дейтела - Полное руководство по C# за 2006 год

338
Изменение текста в label c# и utf8

Изменение текста в label c# и utf8

Я хочу изменить содержимое label с клавиатуры, причем иных компонентов у меня нет, исключительно один label1Вот что я имею:

458