C# Base64 Mime Type Ön Eki Hakkında
-
front ta bu aşağıdaki ön ekler lazım oluyor.
Dosyanın gösterimi veya indirmek için ama backend te bu ön ek kullanılmıyor. Bu ön ekle işlem yapınca patlıyor. Fronta göndermeyince de front ta patlıyor
data:image/png;base64,
data:application/pdf;base64,data:text/plain;base64,
Aşağıdaki gibi ayıklamak veya eklemek gerekiyor
Böyle bir durumu nasıl yönetmek gerekiyor? Doğrusu bu mudur? -
Backend nasil patliyor hocam?
Yok mu bir debugger outputu falan?
Hani bize daha fazla girdi verirsen sorunu bizzat yasamis olmasak da akil yurutebiliriz bu sayede (=
Ben yeri geliyor frontta yeri geliyor backend'te ekliyorum projelerde. Benimkisi usengeclikten tabii.
DB'de mimetype kolonu olusturup ona gore dynamic handle etmek daha akilci geliyor kulaga.
-
Backend'te => iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==
Front'ta => data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==
şeklinde kabul ediyor.
Birini seçip, iki yerde aynısını kullanınca patlıyor iki tarafta. İlla ön ek ekleme kaldırma işlemi yapılıyor. Alternatifi var mı diye merak ettim sadece.
-
Backendte "patlamasini" biraz daha aciklayabilir misin? Ne yapmaya calisirken nasil bir sorun olusturuyor?
Varsayimsal bir yanit vermeye calisayim:
Verini db'de oneksiz tut, front'a servis yaparken prefix olarak ekle mime type'i
backendte bir is yapiyorken oldugu gibi cek.
-
end bunu yazdı
Backendte "patlamasini" biraz daha aciklayabilir misin? Ne yapmaya calisirken nasil bir sorun olusturuyor?
Varsayimsal bir yanit vermeye calisayim:
Verini db'de oneksiz tut, front'a servis yaparken prefix olarak ekle mime type'i
backendte bir is yapiyorken oldugu gibi cek.
Şu yapıyı standart olarak heryerde kullanayım dedim;
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==
frontta okey, ama bu veriyi backentte dosya olarak path'e kaydederken patlıyor.
standart olarak bunu seçtim diyelim her yerde bu şekilde kullanıyorum;
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==
bu seferde frontta dosya indirme/görüntüleme işlemleri kullanılmıyor. Bu ön ek illa bir yerlerde elle eklenip kaldırılıyor. Bu işlemin başka bir standardı var mı acaba?
-
Https bunu yazdıend bunu yazdı
Backendte "patlamasini" biraz daha aciklayabilir misin? Ne yapmaya calisirken nasil bir sorun olusturuyor?
Varsayimsal bir yanit vermeye calisayim:
Verini db'de oneksiz tut, front'a servis yaparken prefix olarak ekle mime type'i
backendte bir is yapiyorken oldugu gibi cek.
standart olarak bunu seçtim diyelim her yerde bu şekilde kullanıyorum;
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==
bu seferde frontta dosya indirme/görüntüleme işlemleri kullanılmıyor. Bu ön ek illa bir yerlerde elle eklenip kaldırılıyor. Bu işlemin başka bir standardı var mı acaba?
standart olarak onu sectin diyelim, base64 olarak byte gonderiyorsun.
bunun yaninda bir de mimetype'ini gondereceksin hocam :)
let response = { data: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+P+/HgAFhAJ/wlseKgAAAABJRU5ErkJggg==', mimeType: 'image/png' }
frontta kullanmak gerektiginde su filtreden gecireceksin oyle kullanacaksin:
const attachmentToUrl = ({mimeType, data}) => `data:${mimeType};base64,${data}`; attachmentToUrl(response);
server'a data pushlayacagin zaman da response.data seklinde gonderirsin direkt mesela.
-
Hocam, o resmin base64 metinsel hali. O metinsel veriyi fiziksel olarak kaydetmeyeceksin. Veritabanına base64 encode haliyle kaydet. Fiziksel olarak dosyayı bir yere kaydetme islemi yok.
-
Kıymetli yorumlarınız için teşekkür ederim hocam @end @ontedi
@end
Bahsettiğin yöntem dinamik bir yapı gibi geldi hocam, uygulayabileceğim yerlerde deneyeyim, tekrar teşekkür ederim.
@ontedi
Dosyalar büyük olunca 100-150 kayıtta bile sql sorgusu uzun sürüyor.
Uygulama içinde dosyalar işleniyor ve db de tutulan dosyaları çekip işlemek path'ten okumaya göre çok fark ediyor.
Şu haliyle path te tutmak gerekiyor sanırım