Clienttan Server a resim kaydetme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Clienttan Server a resim kaydetme
S.a. arkadaşlar client ve server şeklinde yazılım var..Client tarafında kullanıcının seçtiği resmi server tarafında gerekli path kaydetmek istiyorum ve ayrıca bu path database kaydederek resmin çağrılmasını istiyorum...Bunu nasıl yapabiliriz...Tşk...
bunu genelde şu şekilde yaparlar. programın kurulu olduğu klasörü yazma hakkıyla birlikte paylaşıma açarlar. program oradan çalıştırılır. resim kaydederken resim isimli bir klasöre müşteri numarası ile kaydedilir, böylece databasede path tutmaya gerek kalmaz. ama ben tercih etmiyorum. neden resimleri database'de tutmuyorsun? resimler için bir tablo oluştur. böylece diğer verilerini etkilemez. sadece yedek alırken problem olacaktır.
arkadaşlar şimdiye kadar yapmadığım birşey ve ben hala resimi database kaydetmeyi beceremedim...
Mikrochip arkadaşımızın yazdığı kodlardan yararlanmaki istediğim ama sql server da tanımladığım image alanına bu kod kayıt yapıyor database ama null kayıt...içinde bir şey yok....Yardımlarınızı bekliyorum....Eğer database kayıt yapamıyorsak client tarafında herhangi bir clienttan gönderilen resmi serverdaki bir klasöre kaydedip pathinide database kaydedip çağrıldığı zaman programdan gösterme olayıda olabilir ikiside benim işimi görüyor ama beceremedim...Teşekkürler
Kod: Tümünü seç
var
jpgresim: Tjpegimage;
blobalan: Tadoblobstream;
hafiza: Tmemorystream;
begin
if SavePictureDialog1.Execute then
begin
cxDBImage1.Picture.SaveToFile(SavePictureDialog1.FileName);
with dmstok.STRESIMQ do
begin
Append;
FieldValues['RESIM_KODU']:=comboresimkodu.Text;
FieldValues['STOK_KODU']:=edtstokkodu.Text;
jpgresim:=TJpegImage.Create;
jpgresim.assign(cxDBImage1.Picture.Bitmap);
hafiza:=TMemoryStream.Create;
jpgresim.savetostream(hafiza);
blobalan:=TADOBlobStream.Create(TGraphicField(FieldByName('resim')), bmWrite);
blobalan.copyfrom(hafiza,0);
blobalan.free;
hafiza.free;
jpgresim.free;
post;
end;
Mikrochip arkadaşımızın yazdığı kodlardan yararlanmaki istediğim ama sql server da tanımladığım image alanına bu kod kayıt yapıyor database ama null kayıt...içinde bir şey yok....Yardımlarınızı bekliyorum....Eğer database kayıt yapamıyorsak client tarafında herhangi bir clienttan gönderilen resmi serverdaki bir klasöre kaydedip pathinide database kaydedip çağrıldığı zaman programdan gösterme olayıda olabilir ikiside benim işimi görüyor ama beceremedim...Teşekkürler
alanı image değilde blob olarak tanımla. böylece istediğin herşeyi atabilirsin. çizim dosyalarını filestream kullanarak oku. blob alanlarında stream özelliği vardır tabloda. aşağıda basit bir örnek bulunuyor.
kolay gelsin. dosyaları geri almak içinde bmWrite yerine bmRead kullanabilirsin.
Kod: Tümünü seç
var
blob,fs: TStream;
begin
tablo_gorunum.Insert;
blob := tablo_gorunum.CreateBlobStream(tablo_gorunum.FieldByName('gorunum'), bmWrite);
try
blob.Seek(0, soFromBeginning);
fs := TFileStream.Create('temp.ini', fmOpenRead or fmShareDenyWrite);
try
blob.CopyFrom(fs, fs.Size)
finally
fs.Free
end;
finally
blob.Free
end;
tablo_gorunum.Post;
close;