我正在创建一个表单,允许用户上传他们的照片/视频,然后它将保存到我的数据库中。我可以知道有办法完成这项工作吗?我试图使用item_path varchar将其保存在数据库中,这意味着它看起来。示例:img / cats.jpg。我该怎么做才能将它添加到数据库中?谢谢
答案 0 :(得分:0)
如果您无法创建BLOB
列类型,那么我会在文件数据上使用带有base64编码的TEXT
类型。您应该注意记录数据的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或其他云盗版服务。