繁体   English   中英

在MySQL中存储图像/数据和命名约定

[英]Storing image/data in MySQL and naming conventions

关于将图像存储在Web服务器上的一些想法是什么。 Im与应用程序的PHP和MySQL交互。

问题1

我们是否将物理文件的名称更改为a000000001.jpg并将其存储在基本目录中,还是保留用户的非托管文件名,即“ Justin Beiber Found dead.jpg”? 例如

wwroot/imgdir/a0000001.jpg

以及数据库中的所有元数据,例如FileNameReadableNameSizeLocation等。我需要制作一个自定义Filemanager,并权衡一下如何存储图像的基础结构的一些利弊。

问题2

如果我的应用程序/数据库未将其设置为发布/公开,如何保护图像免遭下载?

在我的应用程序中,我可以发布图像,也可以保护它们免于下载,如果我将图像存储在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM