بازم ممنون
ولی اگه بخوام به کاربر اجازه بدم بیش از یک نوع فایل رو آپلود کنه، زمان بازیابی چطوری تشخیص بدم که فایل از چه نوعیه؟ تا یه استریم از همون نوع ایجاد کنم. البته من یه کد دلفی براش پیدا کردم ولی نمیتونم تبدیل به سی بکنم

procedure TForm1.btnLoadClick(Sender: TObject);
var
s: TStream;
buf: word;
gf: TGraphic;
begin
Query1.SQL.Text := 'SELECT img FROM htest';
Query1.Open;
Query1.First;
s := Query1.CreateBlobStream(Query1.FieldByName('img'), bmRead);
try
if s.read(buf, sizeof(buf)) <> sizeOf(buf) then exit;
s.Position := 0;
if buf = $D8FF then
gf := TJPEGImage.Create
else if buf = $4D42 then
gf := TBitmap.Create
else if buf = $CDD7 then
gf := TMetafile.Create
else if buf = 0 then
gf := TIcon.Create;
try
gf.LoadFromStream(s);
Image1.Picture.Graphic := gf;
finally
gf.Free;
end;
finally
s.Free; // must free stream
end;
end;

راستش من اون خطی رو که قرمز کردم اصلا نمیفهمم. میشه برام توضیح بدین