我正在构建一个应用程序(CMS),用户可以上传文件,如图像.
我的问题是如何重命名这些文件以保存.
我认为生成GUID(System.GUID.NewGuid())来保存文件是最好的方法.在这种情况下我是对的还是存在更好的方法?
注意:生成的GUID示例:7c9e6679-944b-7425-40from-e07fc1f90ae7.在这种情况下,图像文件将是:7c9e6679-944b-7425-40from-e07fc1f90ae7.jpg
更新:
用户不会直接与文件名进行交互.
是.但是可能更方便的方案是使用内容的散列和(比如MD5-sum).
那样,
注意典型md5sum的示例是5eb63bbbe01eeed093cb22bb8f5acdc3(对于ASCII/UTF8"hello world")
编辑以响应注释(关于哈希冲突):确实,您可能会遇到与非常大的文档集的哈希冲突.在这种情况下,最常见的是使用散列和+文件的长度来标识'内容blob'.所以你要做的事情如下:
http://cms.mysite.local/docs/123986/5e/b63bbbe/01eeed093cb22bb8f5acdc3.png
Run Code Online (Sandbox Code Playgroud)
对于一个长度~123Kb的png
如果你想要更好的 SEO,你应该在 GUID 之前添加一些内容。更好的方法是结合解释图像/文件的内容生成您自己的唯一 ID(因为 SEO)。
例如,如果您有一个项目,则图像名称可以类似于:
itemId-ItemName.jpg