簡體   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