2016-05-16 66 views
-1

我正在創建一個表單,允許用戶上傳他們的照片/視頻,並將其保存到我的數據庫中。我可否知道有沒有辦法完成這件事?我試圖將它保存在數據庫中使用item_path varchar,這意味着它看起來。例如:img/cats.jpg。我能做些什麼才能將其添加到數據庫中?謝謝如何在不使用blob的情況下將照片/視頻添加到mysqldatabase?

+1

將照片/視頻保存到文件夾中。 –

+0

在某個欄目中保存圖片/視頻的鏈接?鏈接可以是公共/私人Blob存儲服務,如S3,Azure存儲或您的內部定製。如果您的數據庫不是專門用於blob存儲的,那麼通常應該這樣做。爲您節省很多! – activatedgeek

回答

0

如果你不能創建BLOB列類型,那麼我會使用TEXT類型的文件數據與base64編碼。您應該注意記錄數據的MIME類型,並且最好還是存儲校驗和(md5或類似的)。

files表可能是這個樣子

-- files table  
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY 
blob MEDIUMTEXT NOT NULL 
mime_type VARCHAR(255) NOT NULL 
checksum VARCHAR(255) NOT NULL 
created_at DATETIME NOT NULL 

你可能有該文件是爲MySQL TEXT列大小限制關聯到用戶或任何其他相關信息

這裏等欄目類型

TYPE   SIZE LIMIT 
---------------------------------------------------- 
TINYTEXT  (2^8) 256 bytes 
TEXT   (2^16) 65,536 bytes   (64 KiB) 
MEDIUMTEXT (2^24) 16,777,216 bytes  (16 MiB) 
LONGTEXT  (2^32) 4,294,967,296 bytes (4 GiB) 

當你使用PHP編寫到數據庫,使用base64_encode樂趣對文件進行編碼。

如果你不能創建TEXT列類型,那麼你可以忘記保存數據庫中的實際數據。然後,您必須將文件保存到文件系統,並在數據庫中存儲指向文件的鏈接。

最後,正如另一條評論指出的那樣,您可以使用外部blob存儲,如Amazon S3或其他雲盜版服務。

相關問題