我正在尝试将图像上传到PostgreSQL数据库。我试图将文件另存为二进制文件,然后返回上载图像的新插入ID,但始终会收到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; }
}
}
答案 0 :(得分:0)
我认为问题在于映射到“ Image”类。我敢打赌,如果您使用提琴手并检查请求,您会发现事情并不像您认为的那么好...
我首先要删除第一个“图片”参数...
有关完整的教程,请参考此basic implementation,其中包括良好的做法(指出您不应将二进制文件存储在数据库中)