我可以使用UUID作为唯一性的图像文件名吗?

时间:2011-10-23 23:08:18

标签: ruby-on-rails

我在使用UUID的rails应用程序中命名图像文件,例如67bc91b6-fdb3-11e0-bbff-f04da2baa2d4.png 但是,我无法在我的页面中正确显示此图像,有关为什么会发生这种情况的任何线索?

3 个答案:

答案 0 :(得分:2)

文件名无关紧要,UUID(或内容的哈希)无疑是生成唯一文件名的好方法。确保您发送了相应的标题。例如,如果您使用curl -I访问您的网址,则应该会看到正确的内容类型:

$ curl -I http://localhost/APP/image/67bc91b6-fdb3-11e0-bbff-f04da2baa2d4.png
HTTP/1.1 200 OK
Cache-Control: public, max-age=4
Content-Type: image/png
Content-Length: 198542

如果内容类型未设置或设置为错误的格式,或者Content-Length不等于filesize,请将其设为。

答案 1 :(得分:1)

我用其他语言(C#)做过这个并没有问题;网络上没有任何内容限制使用UUID作为图像文件名。还有其他必须在这里进行。

答案 2 :(得分:0)

如果你想要更短的文件名,这总是一件好事,你可以使用Base36编码。

http://en.wikipedia.org/wiki/Base_36

由于它不区分大小写,因此适用于所有操作系统,文件名比简单的UUID到Hex要短很多。