如何将图像文件从 Angular 发送到 .net core API

How to send image file from Angular to .net core API

我想将图像从我的 Angular 应用程序上传到 .net core api,因为我想将它保存在 SQL 数据库中。 为此,我通过以下方式添加图像:

<input type="file" accept="image/png, image/jpeg">

我的对象类型为 File

我发现 this tutorial for API 表明我在后端的 属性 应该如下所示:

public byte[] ImageData { get; set; }

但我不太确定在将其发送到 API 之前我应该​​如何将其转换为该类型。有什么想法吗?

您可以使用存储来上传您的 files/images,它应该为这个媒体文件提供一个 URL,并且您可以将这个 URL 存储在 SQL数据库。 假设您将使用 firebase 存储,请遵循 this link 以更好地理解,但您可以使用任何存储提供商或构建自己的存储提供商。

在您实施解决方案之前,我有一个建议给您

在数据库中存储文件不是最佳做法。您的数据库可能会变得非常庞大,并且为这些文件提供服务可能会对您的代码造成高成本。

相反,您可以将这些文件存储为静态文件以更有效地提供服务。这是一个简单的过程,只需保存这些文件的元数据(大小、文件、类型等),然后存储路径即可。

更多信息,read here

或按照以下步骤操作:

  1. 在您的 javascript 客户端 (how to) 上将二进制文件转换为 base64。
  2. 根据您的正文请求发送 base64 字符串
  3. 在您的端点中获取数据并将其作为字符串存储在您的数据库中