我正在开发一个ASP.NET网站。在网站中,用户需要创建一个帐户,然后他们可以上传他们工作的视频。观众可以自由查看。我使用html5 <video>
标记来显示视频。我正在使用sql server数据库。现在,当用户上传视频时,可以在哪里存储视频?我应该将所有视频存储在同一个文件夹中吗?如果是,则可以有多个同名视频。如何处理?
答案 0 :(得分:2)
解决方案是在名称中嵌入一个id,无论如何。
你可以像这样添加前缀
343-Video.mp4,344-Video.mp4,345-如何制作三明治.mp4
或者你可以用guid替换整个东西并将所有信息存储在数据库中。
如果您使用guid,我会亲自将所有视频存储在同一个文件夹中,以便尽可能简单地进行检索。问题在于SEO,搜索引擎喜欢文件名,他们不喜欢名字中的ID。
要获取文件名,您可以创建文件夹并将其命名为ID并将视频放在那里,或者您可以创建一个控制器来提供来自ID的文件。到目前为止,这些简单的文件夹中包含带有ID的文件夹,然后在那里有视频,你也可以在那里适当地存储不同格式的相同视频。
/ videos / 343 /如何制作三明治.mp4,/ videos / 343 /如何制作三明治.webm
/videos/344/video.mp4,/videos/344/video.webm
即如果您有足够的存储空间并且想要使用自己的服务器,否则您可以通过使用服务托管您的视频来节省大量服务器成本(存储和流量),例如: YouTube或Vimeo
答案 1 :(得分:0)
您可能希望使用与其关联的某种ID标记视频,特别是如果它们可能具有相同的名称。基本上,您将在包含上传信息(上传者,上传日期,视频类型等)的表格中存储记录。您还需要将路径存储到存储视频的文件服务器上的实际文件,然后使用该路径查看它们。
答案 2 :(得分:0)
在每个用户的文件夹中上传视频或为视频分配随机唯一名称(如Guid),然后在数据库中添加一行,指明视频文件的实际名称和文件夹。
答案 3 :(得分:0)
查看文件名编码的答案:https://stackoverflow.com/a/1638761/844044
在SQL中,您在原始文件名(或您要显示的名称)与您生成的base64文件名之间保持链接。
您生成的base64文件名可能存在冲突(这应该是随机生成的),但这样做很容易解决。
还:https://www.youtube.com/watch?v=gocwRvLhDf8,位于youtube文件名
上