Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Fotograf gonderemiyorum
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Fotograf gonderemiyorum

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
zeynepdeniz Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: Dün
Durum: Aktif
Puanlar: 8
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı zeynepdeniz Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Fotograf gonderemiyorum
    Gönderim Zamanı: 1 saat 30 Dakika Önce Saat 21:56
procedure SikayetiGonder;
var
  clRest: TclRest;
  jsonBody, baslik, aciklama, response: String;
  kategoriId, mahalleId: Integer;
begin
  baslik   := EditBaslik.Text;
  aciklama := MemoAciklama.Text;
  kategoriId := CmbKategori.ItemIndex + 1;
  mahalleId  := CmbMahalle.ItemIndex  + 1;
  if baslik = '' then begin ShowMessage('Lütfen başlık giriniz.'); Exit; end;
  if aciklama = '' then begin ShowMessage('Lütfen açıklama giriniz.'); Exit; end;
  if CmbKategori.ItemIndex <= 0 then begin ShowMessage('Lütfen kategori seçiniz.'); Exit; end;
  if CmbMahalle.ItemIndex <= 0  then begin ShowMessage('Lütfen mahalle seçiniz.');  Exit; end;
  BtnGonder.Enabled := False;
  try
    clRest := TclRest.Create;
    clRest.BaseURL := g_ApiUrl + '/api/sikayet-ekle';
    clRest.Accept := 'application/json';
    clRest.Method := rmPost;
    jsonBody := '{';
    jsonBody := jsonBody + '"kullanici_id": ' + IntToStr(g_KullaniciId) + ', ';
    jsonBody := jsonBody + '"kategori_id": ' + IntToStr(kategoriId) + ', ';
    jsonBody := jsonBody + '"mahalle_id": ' + IntToStr(mahalleId) + ', ';
    jsonBody := jsonBody + '"baslik": "' + baslik + '", ';
    jsonBody := jsonBody + '"aciklama": "' + aciklama + '", ';
    jsonBody := jsonBody + '"enlem": "' + gpsEnlem + '", ';
    jsonBody := jsonBody + '"boylam": "' + gpsBoylam + '", ';
    jsonBody := jsonBody + '"foto_url": "' + secilenFotoBase64 + '"';
    jsonBody := jsonBody + '}';
    clRest.AddBody(jsonBody, 'application/json');
    clRest.Execute;
    response := clRest.Response;
    if response <> '' then
      ShowMessage('Şikayetiniz başarıyla gönderildi!');
    else
      ShowMessage('alınamadı.');
  except
    ShowMessage('hata: ' + LastExceptionMessage);
  end;
  BtnGonder.Enabled := True;
end; 

 LblFotoLbl := MainForm.AddNewProLabel(LytBody3, 'LblFotoLbl', 'Fotoğraf'); LblFotoLbl.Align := alTop; LblFotoLbl.Height := 20; LblFotoLbl.clProSettings.FontColor := clAlphaColor.clHexToColor('#5D6D7E'); LblFotoLbl.SetclProSettings(LblFotoLbl.clProSettings);
  PnlFotoBox := MainForm.AddNewProPanel(LytBody3, 'PnlFotoBox'); PnlFotoBox.Align := alTop; PnlFotoBox.Height := 90; PnlFotoBox.Margins.Bottom := 12; PnlFotoBox.clProSettings.BackgroundColor := clAlphaColor.clWhite; PnlFotoBox.clProSettings.BorderColor := clAlphaColor.clHexToColor('#CCD1D1'); PnlFotoBox.clProSettings.BorderWidth := 1; PnlFotoBox.clProSettings.RoundHeight := 8; PnlFotoBox.SetclProSettings(PnlFotoBox.clProSettings); MainForm.AddNewEvent(PnlFotoBox, tbeOnClick, 'FotografSec'); 
  LblFotoAcik := MainForm.AddNewProLabel(PnlFotoBox, 'LblFotoAcik', '[ ] Fotoğraf ekle'); LblFotoAcik.Align := alClient; LblFotoAcik.clProSettings.FontColor := clAlphaColor.clHexToColor('#5D6D7E'); LblFotoAcik.clProSettings.FontHorzAlign := palCenter; LblFotoAcik.clProSettings.FontVertAlign := palCenter; LblFotoAcik.SetclProSettings(LblFotoAcik.clProSettings); MainForm.AddNewEvent(LblFotoAcik, tbeOnClick, 'FotografSec'); 
  ImgOnizleme := MainForm.AddNewImage(PnlFotoBox, 'ImgOnizleme'); ImgOnizleme.Align := alClient; ImgOnizleme.Visible := False; MainForm.AddNewEvent(ImgOnizleme, tbeOnClick, 'FotografSec'); 
  
Postman den test verisi gönderdiğimde fotoğraf gönderiliyor fakat uygulama üzerinden çektiğimde göndersem bile null olarak gidiyor. Fotoğraf cloudinary ile link haline getirilip veritabanında tutuluyor.




https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 913
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 1 saat 20 Dakika Önce Saat 22:06
Merhaba Zeynep


kodda fotoğrafın null gitmesinin nedeni secilenfotobase64 değişkenin fotoğrafsec prosedürü içinde sadece 'gercek_fotograf_secildi' gibi sabit bir metinle dolması.
clomos de ımage.chooser kullanııldığında seçilen dosyanın base64 verisi otomatik olarak değişkene atanmaz veriyi senin yakalaman gerekir

Fotoğraf seçildiğinde, sistemin bu görseli bir metin dizisine (Base64) çevirmesi gerekir.
void FotografSec;
{  
  Clomosy.ImageChooser(MainForm, ImgOnizleme); 
  
  if (ImgOnizleme.Picture.Bitmap <> nil)
  {
    secilenFotoBase64 = ImgOnizleme.Picture.Bitmap.ToBase64;
    
    LblFotoAcik.Visible = False; 
    ImgOnizleme.Visible = True; 

    PnlFotoBox.clProSettings.BackgroundColor = clAlphaColor.clWhite; 
    PnlFotoBox.clProSettings.BorderColor = clAlphaColor.clHexToColor('#27AE60'); 
    PnlFotoBox.SetclProSettings(PnlFotoBox.clProSettings); 
  }
}



güncel SikayetiGonder fonksiyonu 

void SikayetiGonder;
var
  clRest: TclRest;
  jsonBody, baslik, aciklama, response: String;
  kategoriId, mahalleId: Integer;
{
  baslik = EditBaslik.Text;
  aciklama = MemoAciklama.Text;
  kategoriId = CmbKategori.ItemIndex + 1;
  mahalleId = CmbMahalle.ItemIndex + 1;

  if (baslik == '') { ShowMessage('Lütfen başlık giriniz.'); Exit; }
  if (aciklama == '') { ShowMessage('Lütfen açıklama giriniz.'); Exit; }
  if (CmbKategori.ItemIndex <= 0) { ShowMessage('Lütfen kategori seçiniz.'); Exit; }
  if (CmbMahalle.ItemIndex <= 0) { ShowMessage('Lütfen mahalle seçiniz.'); Exit; }
  
  if (secilenFotoBase64 == '') {
    ShowMessage('Lütfen bir fotoğraf ekleyiniz.');
    Exit;
  }

  BtnGonder.Enabled = False;
  try
    clRest = TclRest.Create;
    clRest.BaseURL = g_ApiUrl + '/api/sikayet-ekle';
    clRest.Accept = 'application/json';
    clRest.ContentType = 'application/json'; 
    clRest.Method = rmPost;

    jsonBody = '{';
    jsonBody = jsonBody + '"kullanici_id": ' + IntToStr(g_KullaniciId) + ', ';
    jsonBody = jsonBody + '"kategori_id": ' + IntToStr(kategoriId) + ', ';
    jsonBody = jsonBody + '"mahalle_id": ' + IntToStr(mahalleId) + ', ';
    jsonBody = jsonBody + '"baslik": "' + baslik + '", ';
    jsonBody = jsonBody + '"aciklama": "' + aciklama + '", ';
    jsonBody = jsonBody + '"enlem": "' + gpsEnlem + '", ';
    jsonBody = jsonBody + '"boylam": "' + gpsBoylam + '", ';
    jsonBody = jsonBody + '"foto_url": "' + secilenFotoBase64 + '"'; 
    jsonBody = jsonBody + '}';

    clRest.AddBody(jsonBody, 'application/json');
    clRest.Execute;
    response = clRest.Response;

    if (response <> '')
    {
      ShowMessage('Şikayetiniz başarıyla gönderildi!');
      secilenFotoBase64 = '';
      ImgOnizleme.Visible = False;
      LblFotoAcik.Visible = True;
    }
    else
    {
      ShowMessage('Sunucudan yanıt alınamadı.');
    }
  except
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
  BtnGonder.Enabled = True;
}



https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
zeynepdeniz Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: Dün
Durum: Aktif
Puanlar: 8
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı zeynepdeniz Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 48 Dakika Önce Saat 22:38
RUNTIME ERROR
File library Main: Unknown property or method: "Picture".

hocam böyle bir hata alıyorum 


veya çekilen fotoğrafı direkt cloudinary e gönderip linkini vt ye göndermenin bir yolu var mı?



https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 913
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 40 Dakika Önce Saat 22:46
Merhaba Zeynep

ilettiğin hatanın sebebi clomosy de doğrudan .picture özelliğinin olmaması 

var
  clRest : TclRest;
  secilenFotoBase64, cloudinaryLink, g_ApiUrl : String;
  g_KullaniciId : Integer;

void CloudinaryeYukleVeGonder;
var
  cloudRest: TclRest;
  jsonBody: String;
{
  if (secilenFotoBase64 == '') {
    ShowMessage('Lütfen önce bir fotoğraf seçin.');
    Exit;
  }

  BtnGonder.Enabled = False;
  cloudRest = TclRest.Create;
  
  // 'YOUR_CLOUD_NAME' kısmını kendi hesabındaki isimle değiştir
  cloudRest.Method = rmPost;
  
  cloudRest.AddParameter('file', 'data:image/jpg;base64,' + secilenFotoBase64);
  cloudRest.AddParameter('upload_preset', 'YOUR_UNSIGNED_PRESET'); 

  try
    cloudRest.Execute;
    if (cloudRest.Response <>'') 
    {
      cloudinaryLink = Clomosy.JsonPathString(cloudRest.Response, 'secure_url');
      
      if (cloudinaryLink <>'') 
      {
        SikayetiGonder(cloudinaryLink);
      }
      else
      {
        ShowMessage('Fotoğraf yükleme başarısız oldu.');
        BtnGonder.Enabled = True;
      }
    }
  except
    ShowMessage('Bağlantı hatası: ' + LastExceptionMessage);
    BtnGonder.Enabled = True;
  }
}

void SikayetiGonder(AFotoUrl: String);
var
  sikayetRest: TclRest;
  jsonBody: String;
{
  sikayetRest = TclRest.Create;
  sikayetRest.BaseURL = g_ApiUrl + '/api/sikayet-ekle';
  sikayetRest.Method = rmPost;
  sikayetRest.Accept = 'application/json';
  
  jsonBody = '{' +
    '"kullanici_id": ' + IntToStr(g_KullaniciId) + ', ' +
    '"baslik": "' + EditBaslik.Text + '", ' +
    '"aciklama": "' + MemoAciklama.Text + '", ' +
    '"foto_url": "' + AFotoUrl + '"' + 
  '}';

  sikayetRest.AddBody(jsonBody, 'application/json');
  
  try
    sikayetRest.Execute;
    ShowMessage('Şikayetiniz başarıyla iletildi!');
  except
    ShowMessage('Veritabanı hatası: ' + LastExceptionMessage);
    
  finally
    BtnGonder.Enabled = True;
  }
}

void FotografSec;
{  
  Clomosy.ImageChooser(MainForm, ImgOnizleme); 
  
  if (ImgOnizleme <>nil)
  {
    secilenFotoBase64 = ImgOnizleme.ToBase64;
    
    LblFotoAcik.Visible = False; 
    ImgOnizleme.Visible = True; 
    PnlFotoBox.clProSettings.BorderColor = clAlphaColor.clHexToColor('#27AE60'); 
    PnlFotoBox.SetclProSettings(PnlFotoBox.clProSettings); 
  }
}
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 913
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 39 Dakika Önce Saat 22:47
ımagechooser ile seçilen görseli clomosy de yerel dosya yoluyla alalım
clomosy üzerinden Cloudinary'nin apisine post isteği gönder
Cloudinary'den dönen secure_url bilgisini db ye gönder https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.