如何在不使用blob的情况下将照片/视频添加到mysqldatabase?

时间:2016-05-16 05:46:08

标签: php database netbeans image-uploading

我正在创建一个表单,允许用户上传他们的照片/视频,然后它将保存到我的数据库中。我可以知道有办法完成这项工作吗?我试图使用item_path varchar将其保存在数据库中,这意味着它看起来。示例:img / cats.jpg。我该怎么做才能将它添加到数据库中?谢谢

1 个答案:

答案 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或其他云盗版服务。