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