2016-05-16 37 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或其他云盗版服务。

相关问题