C# 将图像存储在asp.net核心的数据库中。我应该以字节的形式存储图像吗?只需弯曲上传文件的路径就足够了

C# 将图像存储在asp.net核心的数据库中。我应该以字节的形式存储图像吗?只需弯曲上传文件的路径就足够了,c#,.net,asp.net-core,.net-core,C#,.net,Asp.net Core,.net Core,我正在数据库中存储图像文件的详细信息。除了路径之外,我还计划存储字节数组,以防意外删除上传的文件夹。我将使用SQL express数据库,因为我想在本地使用该应用程序。由于SQL express的大小为10GB,建议在数据库中存储图像的字节数组。 字节数组的大小是否与图像的大小相同?因为我预计图像的大小将在5-10MB左右 using (var fileStream = new FileStream(filePath, FileMode.Create))

我正在数据库中存储图像文件的详细信息。除了路径之外,我还计划存储字节数组,以防意外删除上传的文件夹。我将使用SQL express数据库,因为我想在本地使用该应用程序。由于SQL express的大小为10GB,建议在数据库中存储图像的字节数组。 字节数组的大小是否与图像的大小相同?因为我预计图像的大小将在5-10MB左右

using (var fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        await postPatientInformationEntity.PatientPhoto.CopyToAsync(fileStream);
                        fileInformationEntity.Path = filePath;
                        fileInformationEntity.Name = postPatientInformationEntity.PatientPhoto.FileName;
                        fileInformationEntity.Type = postPatientInformationEntity.PatientPhoto.ContentType;

                    }
                    using (var ms = new MemoryStream())
                    {
                        await postPatientInformationEntity.PatientPhoto.CopyToAsync(ms);
                        var fileBytes = ms.ToArray();
                        fileInformationEntity.FileData = fileBytes;
                        // act on the Base64 data
                    }

另一种更好的方法是将图像存储在数据库之外,并且只存储到图像文件的链接。您只需要数据库表中的一个文本字段来存储此信息。这种方法的唯一问题是必须将链接字段中的数据与文件系统同步。可能的解决方案是将其存储在文件系统中,如果需要从另一台服务器访问映像,可以使用诸如rsync之类的工具将文件从一台服务器移动到另一台服务器。这些工具可以自动化,以便以固定的时间间隔同步文件系统上传文件的路径就足够了。

另一种方法是将图像存储在数据库之外,并且只存储到图像文件的链接。您只需要数据库表中的一个文本字段来存储此信息。这种方法的唯一问题是必须将链接字段中的数据与文件系统同步。可能的解决方案是将其存储在文件系统中,如果需要从另一台服务器访问映像,可以使用诸如rsync之类的工具将文件从一台服务器移动到另一台服务器。这些工具可以自动化,以便以固定的时间间隔同步文件系统上传文件的路径足够了。

这是否回答了您的问题?这回答了你的问题吗?