如何解决在数据库 ASP.NET Core 3.1 应用程序中保存和上传文件
我是 Web 开发的新手,我在上传和保存数据库中的文件(例如 .doc/.pdf/.jpeg)时遇到问题,我在 Internet 上找不到好的解决方案。我的目标是下一个:上传/检索与表绑定的文件(EF Core,代码优先方法)。有没有这方面的图书馆,或者我如何为我的目标组织架构?
public class MyModel
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(255)]
public string SomeProperty{ get; set; }
//other properties
//....
//my property for file...
}
解决方法
我会向 MyModel 类型添加一个 byte[] 类型的属性。
public byte[] fileData { get; set; }
然后您可以打开所需的文件并将 FileStream 复制到一个类型为 MemoryStream 的对象中,这样我们就可以调用其 ToArray 方法来生成一个字节数组。我们使用对象初始值设定项将其分配给 fileData 属性。
FileStream fs = File.OpenRead("{filePath}");
MemoryStream ms = new MemoryStream();
await fs.CopyToAsync(ms);
MyModel model = new MyModel {fileData = ms.ToArray()};
//Adding the object to the ChangeTracker of our DbContext and with calling
//SaveChanges persisting these changes
MyModelContext context = new MyModelContext();
context.Add(model);
await context.SaveChangesAsync();
,
正如@DavidSeesSharp 所说,您可以将其存储在字节中,这是一种方法 但我更喜欢使用第二种方法
第二种方法是您可以复制项目中的文件并将该文件的路径存储到您的数据库中。因此,您可以通过传递路径直接访问该文件。 如果您需要代码,请说明正确的用例,我可以为您提供帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。