[英]Storing image/data in MySQL and naming conventions
关于将图像存储在Web服务器上的一些想法是什么。 Im与应用程序的PHP和MySQL交互。
我们是否将物理文件的名称更改为a000000001.jpg
并将其存储在基本目录中,还是保留用户的非托管文件名,即“ Justin Beiber Found dead.jpg”? 例如
wwroot/imgdir/a0000001.jpg
以及数据库中的所有元数据,例如FileName
和ReadableName
, Size
, Location
等。我需要制作一个自定义Filemanager,并权衡一下如何存储图像的基础结构的一些利弊。
如果我的应用程序/数据库未将其设置为发布/公开,如何保护图像免遭下载?
在我的应用程序中,我可以发布图像,也可以保护它们免于下载,如果我将图像存储在db表中,则可以将其存储为BLOB并使用php阻止用户下载它。 如果图像存储在FileSystem中,我希望能够对图像执行相同的操作,但是我不确定系统中的PHP和Files是否可行。
保留相关的文件名可能对SEO很有帮助,但您还必须确保不要重复。
在所有情况下,我都将文件重命名为小写并用下划线(或连字符)替换空格
Justin Beiber Found dead.jpg
=> justin_beiber_finally_dead.jpg
如果照片属于文章或特定内容,则可以在图像中添加文章ID,即123_justin_beiber_found_dead.jpg
。 或者,您可以将图像存储在文章特定的文件夹中,即/images/123/justin_beiber_found_dead.jpg
。
将文件命名为a0000001
会删除与文件的所有相关性,并且不会增加任何值。
仅将(完整)文件路径存储在数据库中。
对于第2部分;
我不确定这里最好的解决方案是什么,但是使用文件系统,我认为您将必须配置apache以通过PHP为特定目录中的所有文件提供服务。 然后,在PHP中,您可以检查文件是否可以发布,然后将其吐出。 如果没有,则可以提供虚拟图像。 但是,这不是很有效,并且在Apache上会更重。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.