Загрузить изображение в PostgreSQL с помощью .NET Core - PullRequest
0 голосов
/ 30 октября 2018

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

Вот мой контроллер:

public class ImageController : ControllerBase
{
    private readonly ImageDbContext _context;

    public ImageController(ImageDbContext context)
    {
        _context = context;
    }

    [HttpPost("api/Image/upload")]
    public async Task<IActionResult> UploadImage(Image images, List<IFormFile> ImageData)
    {
        foreach (var item in ImageData)
        {
            if (item.Length > 0)
            {
                using (var stream = new MemoryStream())
                {
                    await item.CopyToAsync(stream);
                    images.ImageData = stream.ToArray();
                }
            }
        }

        _context.Image.Add(images);
        _context.SaveChanges();
        return CreatedAtAction("ImageId", new { id = images.ImageId });
    }
}

Вот моя модель:

namespace Upload_images_API.Models
{
    public class Image
    {
        public int ImageId { get; set; }
        public byte[] ImageData { get; set; }
    }
}

1 Ответ

0 голосов
/ 30 октября 2018

Я полагаю, что проблема заключается в отображении в класс Image. Могу поспорить, что если вы используете Fiddler и изучите запрос, вы увидите, что все не так хорошо, как вы думаете ...

Я бы сначала удалил первый аргумент "Изображение" ...

Обратитесь к этой базовой реализации для получения полного руководства, включая рекомендации (что указывает на то, что вы не должны хранить двоичный файл в базе данных)

...