【发布时间】:2018-04-13 03:39:10
【问题描述】:
如何在将图像存储到数据库之前检查图像大小。我需要在用户上传图片之前检查图片大小,以避免无法写入数据库的错误。
下面是我如何在我的数据库中插入图像的片段,它工作正常,除了大于我将其存储在数据库中的字段大小的图像。
数据库中的image字段为LONGVARBINARY484 Physical Length
dtm.cds.Insert;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Image1.Visible := false;
Field := TBlobField(dtm.cds.FieldByName('PICTURE'));
Stream := dtm.cds.CreateBlobStream(field, bmwrite);
JpegImage := TJPEGImage.Create;
try
JpegImage.Assign(Image1.Picture);
JpegImage.SaveToStream(Stream);
finally
Stream.Free;
dtm.cds.Post;
dtm.cds.ApplyUpdates(-1);
end;
【问题讨论】:
-
484 字节 (!) 长图像要么非常小,要么很难看,要么无法存储。除了更改架构以允许存储无限量的数据之外,别无所求。
-
@Victoria 不确定这是否是 484 字节。我当前存储的图像大小为 11.7 KB。如果以字节为单位,那么它将是 0.484 KB,并且该图像不适合该字段。
-
如果不是 484 则显示表的实际架构。你用的是什么数据库?什么数据库组件?你怎么连接?直接的? ODBC?还有什么?什么版本的德尔福?
-
尝试执行事务。如果失败,回滚并报错。
标签: delphi