我想在表格中使图像文件的最大允许大小为25MB。但是我还没有找到实现这一目标的方法。现在我正在使用MEDIUMBLOB,因为它的最大值是16MB,但我想它只是稍微大一点。那有可能吗?
我对MySQL很陌生,所以如果我想问的话似乎不清楚我会道歉。
答案 0 :(得分:0)
我建议不要将图像存储在数据库中。 我建议按照以下流程来存储图像 如果要在创建用户帐户时存储每个用户的个人资料图片 - 在数据库中创建额外的字段用户表以存储配置文件图片名称。 - 首先在数据库中插入其他详细信息并获取最后插入的id(即用户表的主键)。 - 将图像上传到服务器上的一个文件夹中,并使用唯一键重命名该图像(例如:" profile_pic _"并与用户表的主键连接) - 更新数据库中用户表中的图像名称。
答案 1 :(得分:0)
CREATE TABLE exceptions (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
message VARCHAR(255),
UNIQUE KEY (id, message)
);
INSERT INTO exceptions (1, 'Images must be <=25MB');
假设BLOB列被称为'data':
delimiter //
CREATE TRIGGER assert_image_size BEFORE INSERT ON images
FOR EACH ROW
BEGIN
IF LENGTH(NEW.data) > 25000000 THEN
INSERT INTO exceptions (1, 'Images must be <=25MB');
END IF;
END;
//
delimiter ;
MySQL将抛出重复键错误,错误消息将包含文本“Image too large”。