• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skracanie stringa base64

VPS Starter Arubacloud
0 głosów
271 wizyt
pytanie zadane 17 stycznia 2021 w C# przez Szyszka Gaduła (3,490 p.)

Witam. Czy jest możliwe skrócenie stringa 64? Chodzi mi o string, który został utworzony w taki sposób:

var ms = new MemoryStream();
            img.FormFile.CopyTo(ms);

            var bytes = ms.ToArray();

            var base64 = Convert.ToBase64String(bytes);
            img.ImageURL = "data:image/" + ex + ";base64," + base64;

Mój plik waży zaledwie 230KB, a już link ImageURL nie mieści mi się w bazie danych, gdyż zawiera on 65535 znaków. Dzieki za pomoc!

1 odpowiedź

+3 głosów
odpowiedź 17 stycznia 2021 przez adrian17 Ekspert (344,100 p.)
wybrane 17 stycznia 2021 przez Szyszka
 
Najlepsza

Z definicji base64 jest większy od oryginalnego pliku, bo to reprezentacja tych samych danych używająca mniejszy podzbiór wartości bajtów.

Natomiast... dlaczego w ogóle próbujesz przechowywać obrazek w bazie danych jako base64? To dość dziwny pomysł. Takich danych w ogóle nie przechowuje się w bazie danych, tylko gdzieś obok jako zwykłe pliki. (ewentualnie jako typ BLOB w bazie, ale to ostateczność)

komentarz 17 stycznia 2021 przez Szyszka Gaduła (3,490 p.)
Jako zwykłe pliki? Mam tworzyć do każdego stringa64 tworzyć plik txt i potem z niego odczytywać ten string? Wydaje się to dość niewydajne. Ogólnie próbuję utworzyć coś na wzór hostingu zdjęć. Masz może jakieś podejrzenia, jak np. Facebook przechowuje zdjęcia?
komentarz 17 stycznia 2021 przez adrian17 Ekspert (344,100 p.)

Mam tworzyć do każdego stringa64 tworzyć plik txt i potem z niego odczytywać ten string?

Nie, w ogóle nie myśleć o base64. Po prostu zapisać plik z obrazkiem.

Masz może jakieś podejrzenia, jak np. Facebook przechowuje zdjęcia?

...po prostu je hostuje jako zwykłe pliki i umieszcza na stronie w tagach <img>. Nie wiem skąd przekonanie że muszą używać data:image :D

Patrz: https://puu.sh/H7NOw/10d1e54991.jpg

 

komentarz 17 stycznia 2021 przez Szyszka Gaduła (3,490 p.)

Mhm, czyli muszę je zapisać na serwerze. Jak mam tego dokonać? Plik wysłany przez użytkownika znajduje się u mnie pod img.FormFile. I jest to:

        public IFormFile FormFile { get; set; }

Szukałem odpowiedzi w Google, jak mam zapisać plik wysłany przez użytkownika na serwerze, ale nie znalazłem odpowiedzi :/.

komentarz 17 stycznia 2021 przez adrian17 Ekspert (344,100 p.)
Nie no, sporo tego da się wyguglować. Na przykład

https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-5.0

Natomiast wiele więcej nie pomogę, bo nie wiem jak to się ogólne idiomatycznie robi w ASP.NET.
komentarz 17 stycznia 2021 przez Szyszka Gaduła (3,490 p.)
Dzięki wielkie, udało się :)!

Podobne pytania

0 głosów
0 odpowiedzi 324 wizyt
pytanie zadane 2 maja 2019 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)
0 głosów
1 odpowiedź 106 wizyt
pytanie zadane 25 marca 2019 w JavaScript przez niezalogowany
0 głosów
0 odpowiedzi 184 wizyt
pytanie zadane 22 sierpnia 2018 w Systemy operacyjne, programy przez Assasz Nałogowiec (30,460 p.)

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...