Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 11 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Resim Yükleme
#11
API Metodu için teşekkürler.

Çoklu resim yollama imkanı için olan şekilde revize ederek bir fonksiyon altında toparlanmış halini yollayayım.

Forma bir TButton ve bir TMemo eklemek yeterli. USES kısmını ve bileşen yaratılması dinamik fonksiyon içerisinden. Hani bir class altına koyarken USES'ı neydi diye aramayalım diye  Idea  Her UNIT tanımı ilgili CREATE edilen bileşen veya CONST value başına özellikle eklenmiştir. Aşina olmayanlar için bildireyim, olmasa da olurlar.

Uses  REST.Client, REST.Types, IpPeerClient,
      SYSTEM.Json, SYSTEM.UITypes, ClipBrd, ExtDlgs,
      JPEG, PNGImage;

Function ResimYolla: String;
var
 i : Integer;
 jValue : SYSTEM.Json.TJSONValue;
 RCli   : REST.Client.TRESTClient;
 RReq   : REST.Client.TRESTRequest;
 RRes   : REST.Client.TRESTResponse;
begin
 Result := '';
 RCli   := nil;  // Not initialized warningleri için
 RReq   := nil;
 RRes   := nil;
 With ExtDlgs.TOpenPictureDialog.Create(nil) do begin
   Options := [ofAllowMultiSelect];
    Filter  := 'Tümü         |*.jpg;*.bmp;*.png|'
             + 'JPEG Images  |*.jpg|'
             + 'Bitmap Images|*.bmp|'
             + 'PNG Images   |*.png|';
   if Execute then
   begin
       Try
         RCli          := REST.Client.TRESTClient.Create( '' );
         RCli.BaseURL  := 'https://api.cloudinary.com/v1_1/BizimBase/image/upload'; // BizimBaseURL Güncellenecek

         RRes          := REST.Client.TRESTResponse.Create( nil );

         RReq          := REST.Client.TRESTRequest.Create ( nil );
         RReq.Client   := RCli;
         RReq.Response := RRes;
         RReq.Timeout  := 10000;

         RReq.Method   := REST.Types.rmPOST;
         for i := 0 to Files.count-1 do
         begin
           RReq.Params.Clear;
           RReq.AddParameter('upload_preset', 'BizimPreset'); // Bizim_Preset güncellenecek
           RReq.AddParameter('file', Files[i], REST.Types.TRESTRequestParameterKind.pkFILE );

           RReq.Execute;
           if RRes.Status.SuccessOK_200 then
           begin
             jValue := RRes.JSONValue;
             if Result = '' then Result :=                jValue.GetValue<String>('url')
                            else Result := Result + #13 + jValue.GetValue<String>('url');
           end;
         end; // For
     Finally
       RReq.Free;
       RRes.Free;
       RCli.Free;
     End;
     if Result <> '' then begin
       ClipBrd.Clipboard.AsText := Result;
       MessageDlg( 'Gönderilen Resim URL(ler)i Clipboard''a Kopyalandı...', TMSGDlgType.mtInformation, [mbOk], 0);
     end else begin
       Result := 'Resim yollanamadı...';
       MessageDlg( 'Yollama işlemi Başarısız Sonuçlandı...', TMSGDlgType.mtError, [mbOk], 0);
     end;
   end;
   Free;
 end;
end;

Kullanımı :
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Memo1.Text := ResimYolla();
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#12
Emeğinize sağlık
There's no place like 127.0.0.1
WWW
Cevapla
#13
Paylaşımınız ve emeğiniz için Teşekkürler
Cevapla
#14
Emeğinize sağlık harika olmuş..
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  AnonymousThread ile ListView'e Veri Yükleme witalihakko 3 959 15-03-2017, Saat: 11:54
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi