在MySQL中使用BLOB时,是否可以在允许的图像文件上放置最大大小?

时间:2015-09-12 23:30:32

标签: mysql image blob

我想在表格中使图像文件的最大允许大小为25MB。但是我还没有找到实现这一目标的方法。现在我正在使用MEDIUMBLOB,因为它的最大值是16MB,但我想它只是稍微大一点。那有可能吗?

我对MySQL很陌生,所以如果我想问的话似乎不清楚我会道歉。

2 个答案:

答案 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”。