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

时间:2020-07-11 16:33:47

标签: javascript c# angular .net-core blob

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

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

我的对象类型为File enter image description here

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

public byte[] ImageData { get; set; }

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

2 个答案:

答案 0 :(得分:0)

您可以使用存储器来上传文件/图像,它应该为此媒体文件提供URL,并且可以将该URL存储在SQL数据库中。 假设您将使用Firebase存储,请按照this link进行更好的理解,但是您可以使用任何存储提供程序或构建自己的存储提供程序。

答案 1 :(得分:0)

在您实施解决方案之前,我会为您提供一条建议

在数据库中存储文件不是最佳实践。您的数据库可能会变得非常庞大,并且为这些文件提供服务可能会使您的代码变得昂贵。

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

有关更多信息,请read here

或按照以下步骤操作:

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