gpt4 book ai didi

c# - 上传/保存视频到数据库或文件系统

转载 作者:行者123 更新时间:2023-11-30 17:08:21 27 4
gpt4 key购买 nike

我以前从未尝试过保存视频,所以我对此了解不多。我知道如果视频很小我可以转换为字节数组并保存到数据库,但是为了更有效率我想学习如何将任何上传的视频保存到我的服务器文件然后只保存文件路径我的数据库表中的视频。我完全不知道如何开始这样做。我在下面看到了这个例子,但不太确定它在做什么。对我来说,它似乎正在保存任何用户上传到 App_Data 文件夹的所有上传视频。是对的吗?非常感谢任何帮助。

[HttpPost]
public ContentResult UploadFiles()
{
var r = new List<ViewDataUploadFilesResult>();

foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;

string savedFileName = Path.Combine(Server.MapPath("~/App_Data"), Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName); // Save the file

r.Add(new ViewDataUploadFilesResult()
{
Name = hpf.FileName,
Length = hpf.ContentLength,
Type = hpf.ContentType
});
}
// Returns json
return Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json");
}

最佳答案

您的假设是正确的。它还返回一个包含名称、内容类型和长度的 JSON 字符串。这无疑是异步上传。

通常将文件存储在磁盘上比使用数据库更好。有几个原因:

  • 更少的开销。通过文件系统加载比通过连接到(可能是非本地的)数据库更快。
  • 大对象分配最少:在上传过程中已经创建了一个大对象。如果您要转换为字节数组,则会在内存中创建另一个大对象。

您可能想要使用数据库的一个原因是用于自定义版本控制或正确跟踪文件(通过额外的元数据等)。然而,这通常也可以使用文件系统来完成。

关于c# - 上传/保存视频到数据库或文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com