[英]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.