Flutter将图像上传到ASP.NET核心Web API

wwwo4jvm  于 2022-12-14  发布在  Flutter
关注(0)|答案(1)|浏览(156)

我把一个包含图像列表的对象

class User{
  String name;
  int age;
  List<XFile>? images;
  Person({required this.name,required this.age,this.images})
}

我用的是

http: ^0.13.4 //to call my api
image_picker: ^0.8.5+3 //to pick images

并且它应该调用API将对象注册到数据库。
我已经学习了许多使用Http包的Multipart方法的教程,但是我不知道哪种方法适合我的情况

http.MultipartFile()
http.MultipartFile.fromBytes(field, value)
http.MultipartFile.fromPath(field, filePath)
http.MultipartFile.fromString(field, value)

我的问题是我的案例的最佳解决方案

1)发送整个对象及其图像列表。
1.通过ASP.NET控制器处理对象

nhhxz33t

nhhxz33t1#

如果你想在API中的数据库中存储图像,我建议你使用控制器来处理它。
当您收到影像档时,您可以将IFormFile复制到数据流,并将它储存为数据库中的字节数组:

using (var memoryStream = new MemoryStream())
{
    await FileUpload.FormFile.CopyToAsync(memoryStream);

    // Upload the file if less than 2 MB
    if (memoryStream.Length < 2097152)
    {
        var file = new AppFile()
        {
            Content = memoryStream.ToArray()
        };

        _dbContext.File.Add(file);

        await _dbContext.SaveChangesAsync();
    }
}

有关详细信息,请参阅this link
关于Flutter的有用链接:是的。
希望这能对你有所帮助。

相关问题