怎么限制保存图片的大小呢?比如说超过500K的图片就不允许提交。否则数据库太大了,读取也慢。保存图片代码如下,怎么改一下?:
//保存图片
procedure TForm1.btn1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
img1.Picture.LoadFromFile(dlgOpen1.FileName);
qry1.Append;
qry1.Post;
end;
//提前之前将图片转换为数据流
procedure TForm1.qry1BeforePost(DataSet: TDataSet);
var
ms: TMemoryStream;
jpg: TJpegImage;
begin
ms := TMemoryStream.Create;
jpg := TJpegImage.Create;
try
if img1.Picture.Graphic<>nil then
begin
try
img1.Picture.Graphic.SaveToStream(ms);
finally
TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms);
end;
end;
finally
jpg.Free;
ms.Free;
end;
end;
//保存图片
procedure TForm1.btn1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
img1.Picture.LoadFromFile(dlgOpen1.FileName);
qry1.Append;
qry1.Post;
end;
//提前之前将图片转换为数据流
procedure TForm1.qry1BeforePost(DataSet: TDataSet);
var
ms: TMemoryStream;
jpg: TJpegImage;
begin
ms := TMemoryStream.Create;
jpg := TJpegImage.Create;
try
if img1.Picture.Graphic<>nil then
begin
try
img1.Picture.Graphic.SaveToStream(ms);
finally
TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms);
end;
end;
finally
jpg.Free;
ms.Free;
end;
end;
弹一个提示框
var
ms: TMemoryStream;
jpg: TJpegImage;
begin
ms := TMemoryStream.Create;
jpg := TJpegImage.Create;
try
if img1.Picture.Graphic <>nil then
begin
try
img1.Picture.Graphic.SaveToStream(ms);
//add
if ms.size>1024*500 then
begin
//do something
end
else
//save to database
//add
finally
TBlobField(qry1.FieldByName('pic')).LoadFromStream(ms);
end;
end;
finally
jpg.Free;
ms.Free;
end;
end;