![]() |
|
Rest Serverdan androide image download etmek - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: Rest Serverdan androide image download etmek (/showthread.php?tid=7347) |
Rest Serverdan androide image download etmek - serifaliyagci - 02-07-2023 Merhaba arkadaşlar projemde bir şekilde android uygulama içinden rest sunucunun çalıştığı bilgisayarın belirli bir klasöründeki jpg uzantılı dosyaları androidde belirteceğim dizine sırasıyla download etmek istiyorum. Bu konu hakkında yardımcı olabilir misiniz? Uygulama içinde belirli bir mantığa göre bu jpg dosyaları kullanıcıya göstererek işlem yaptırmam gerekiyor. Şuan telefonu bilgisayara bağlayıp belirttiğim dizine kopyalayarak işlemi gerçekleştiriyorum fakat her kullanıcıya da telefonu ver fotoğrafları yükleyelim demek de mantıklı gelmiyor. Cvp: Rest Serverdan androide image download etmek - hi_selamlar - 04-07-2023 (02-07-2023, Saat: 23:26)serifaliyagci Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar projemde bir şekilde android uygulama içinden rest sunucunun çalıştığı bilgisayarın belirli bir klasöründeki jpg uzantılı dosyaları androidde belirteceğim dizine sırasıyla download etmek istiyorum. Bu konu hakkında yardımcı olabilir misiniz? Uygulama içinde belirli bir mantığa göre bu jpg dosyaları kullanıcıya göstererek işlem yaptırmam gerekiyor. Şuan telefonu bilgisayara bağlayıp belirttiğim dizine kopyalayarak işlemi gerçekleştiriyorum fakat her kullanıcıya da telefonu ver fotoğrafları yükleyelim demek de mantıklı gelmiyor. Merhabalar, Yapılmak isteneni tam olarak anlayamadım kendi adıma belirtmek gerekirse. Rest sunucudan zaten resimleri alabildiğinizi belirtmişsiniz. Rest ile base64 encode/decode ederek resimleri alabilirsiniz. Bu link'i de inceleyebilirsiniz.. Uygulamayı kullanıcılara dağıtıp (ip adresinize dikkat etmeniz gerekli) resimleri alabilirsiniz. Kolay gelsin. Cvp: Rest Serverdan androide image download etmek - serifaliyagci - 04-07-2023 (04-07-2023, Saat: 12:58)hi_selamlar Adlı Kullanıcıdan Alıntı:(02-07-2023, Saat: 23:26)serifaliyagci Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar projemde bir şekilde android uygulama içinden rest sunucunun çalıştığı bilgisayarın belirli bir klasöründeki jpg uzantılı dosyaları androidde belirteceğim dizine sırasıyla download etmek istiyorum. Bu konu hakkında yardımcı olabilir misiniz? Uygulama içinde belirli bir mantığa göre bu jpg dosyaları kullanıcıya göstererek işlem yaptırmam gerekiyor. Şuan telefonu bilgisayara bağlayıp belirttiğim dizine kopyalayarak işlemi gerçekleştiriyorum fakat her kullanıcıya da telefonu ver fotoğrafları yükleyelim demek de mantıklı gelmiyor. Merhabalar cevap için çok teşekkür ederim. Rest server ın çalıştığı bilgisayarda bir klasörde tüm fotoğrafları tutuyoruz. Bu fotoğrafları bir şekilde mobile taşımam gerekiyor ve bunu bir sefer yapıp depolayarak kullanım kolaylığı sağlamak istiyorum açıkçası. Ama rest server ın kurulu olduğu sunucudaki fotoğrafları nasıl sırasıyla download edebilirim konusu yok bende malesef. Çok araştırma yaptım ama bir türlü hedeflediğim şey hakkında bir bilgi bulamadım. Verdiğiniz linkteki soru cevapları da okudum ama konunun benimle istediğimle alakalı olup olmadığı konusunda hiçbir fikrim yok çünkü bilmediğim bir konu. Özetle bir rest sunucu var ve bu sunucu üzerinde bir klasörde fotoğraflar var bunları mobilde bir dizine sırasıyla indirmek istiyorum. Cvp: Rest Serverdan androide image download etmek - RAD Coder - 04-07-2023 Sunucu üzerindeki dosyaların toplam boyutu son derece önem taşımaktadır. Tüm dosyaları sıkıştırıp, tek seferde kopyalayabilirsiniz. Sıkıştırılmış dosya boyutu büyükse, belli bir sayıda dosyayı sıkıştırarak, birkaç sıkıştırma ile tümünü aktarabilirsiniz. Bu yöntemler mümkün değilse tek tek de transfer edebilirsiniz. Transfer işlemi; ister tek tek olsun ister sıkıştırılmış dosya olsun, mutlaka base64 formatına dönüştürün öyle gönderin. Mobil tarafta base64 encode ederek dosyayı tekrar elde edebilirsiniz. Base64 encode ve decode için System.NetEncoding.TBase64Encoding sınıfını kullanabilirsiniz. Sunucu üzerindeki dosyaların listesini TDirectory.GetFiles fonksiyonu ile alabilirsiniz. Cvp: Rest Serverdan androide image download etmek - serifaliyagci - 04-07-2023 (04-07-2023, Saat: 15:27)RAD Coder Adlı Kullanıcıdan Alıntı: Sunucu üzerindeki dosyaların toplam boyutu son derece önem taşımaktadır. Tüm dosyaları sıkıştırıp, tek seferde kopyalayabilirsiniz. Çok teşekkür ederim. Ben tek tek indirip saklamayı deniycem. Cvp: Rest Serverdan androide image download etmek - serifaliyagci - 15-07-2023 (04-07-2023, Saat: 15:42)serifaliyagci Adlı Kullanıcıdan Alıntı:(04-07-2023, Saat: 15:27)RAD Coder Adlı Kullanıcıdan Alıntı: Sunucu üzerindeki dosyaların toplam boyutu son derece önem taşımaktadır. Tüm dosyaları sıkıştırıp, tek seferde kopyalayabilirsiniz. Merhabalar bu konu ile alakalı bir durum ortaya çıktı. Şöyle ki; sunucudan gelen fotoğraf jpg ben bunu base64 encode edip mobile json olarak gönderdim fakat orada şöyle bir sorun ortaya çıktı. Gelen veri jpg uzantılı bir dosyaya ait ve doğru bir veri "https://base64.guru/converter/decode/image" bu sitede kontrol ettim ama mobilde bu base64 veriyi decode edemiyorum bana gelen verinin bitmap olmadığını söyleyip hata veriyor. Sunucu tarafında uriye bağlı action şöyle procedure TWebModule1.WebModule1DosyaIndirAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
StrJSon: TJsonObjectWriter;
ImageIstek: TJSONObject;
Stok: String;
begin
if (Request.MethodType <> TMethodType.mtPost) then
Handled := False
else
begin
ImageIstek := TJSONObject.ParseJSONValue
(TEncoding.UTF8.GetBytes(Request.Content), 0) as TJSONObject;
{
"stok" : "152011001"
}
Stok := ImageIstek.P['stok'].Value;
try
StrJSon := TJsonObjectWriter.Create;
StrJSon.WriteStartObject;
StrJSon.WritePropertyName('image');
StrJSon.WriteValue(EncodeFileToBase64('C:\inetpub\wwwroot\ImageWeb\Image\'
+ Stok + '.jpg'));
Response.ContentType := 'application/json';
Response.Content := StrJSon.JSON.ToString;
finally
StrJSon.WriteEndObject;
StrJSon.DisposeOf;
ImageIstek.DisposeOf;
end;
end;
// Client tarafında ise
function Base64ToBitmap(const Base64Str: string): TBitmap;
var
Stream: TMemoryStream;
DecodedData: TBytes;
begin
Result := TBitmap.Create;
Stream := TMemoryStream.Create;
try
DecodedData := TNetEncoding.Base64.DecodeStringToBytes(Base64Str);
Stream.WriteData(DecodedData, Length(DecodedData));
Stream.Position := 0;
Result.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
procedure SaveBase64AsJPEG(const Base64Str: string; const FileName: string);
var
Bitmap: TBitmap;
begin
Bitmap := Base64ToBitmap(Base64Str);
try
Bitmap.SaveToFile(FileName);
finally
Bitmap.Free;
end;
end;
Fonksiyon ve prosedür ile StokBase64 := DataModulum.dmRESTResponse.Content; SaveBase64AsJPEG(StokBase64, TPath.GetSharedDocumentsPath + PathDelim +'152011001.jpg'); gelen veriyi dosyaya kaydetmeye çalışıyorum ama gelen base64 bitmap dosyaya ait olmadığı için hata veriyor. Bu konuda bana nasıl yardımcı olabilirsiniz? Cvp: Rest Serverdan androide image download etmek - serifaliyagci - 17-07-2023 (15-07-2023, Saat: 16:16)serifaliyagci Adlı Kullanıcıdan Alıntı:(04-07-2023, Saat: 15:42)serifaliyagci Adlı Kullanıcıdan Alıntı: Çok teşekkür ederim. Ben tek tek indirip saklamayı deniycem. Merhabalar, ben problemi çözdüm. Gelen json da \r şeklinde karakterler gördüm. Sunucudan aldığım json da bu karakterler yoktu bende replacetext yaparak o karakterleri yok ettim sorunum çözüldü. |