Siema miruny z #programowanie #csharp #razorpages #bazydanych Mam projekt. W razor pages robie web app. Z połączeniem do bazy danych i mam tam do bazy danych dodać m.in. Zdjęcie. Prowadzący wymyślił(czyli skopiował ze strony docs.microsoft) żeby zdjęcie dodać jako tablicę bajtów. Czyli w bazie danych mamy image type Blob. No i przy tworzeniu nowego wpisu do bazy danych nie ma problemu. Korzystam z
Potem podobnie zczytuje i wyświetlam. Wszystko Git. Ale prowadzący chce, aby aplikacja sprawdzała po uruchomieniu czy jest baza danych, jak nie ma to żeby ją tworzyła i kilka wpisów było predefiniowanych przy tworzeniu. I jak z dodawaniem stringów sobie poradziłem, tak z dodaniem zdjęcia nie mam pomysłu. Może mi ktoś pomóc albo naprowadzić gdzie tego szukać?
@gdziemojimbuspiatka: No okej, ale czy w zadaniu zostało podane w jaki sposób ten plik ma się w tej nowo utworzonej bazie znaleźć? Jeśli nie to nie widzę przeszkód, aby: 1. Wczytać obrazek z pliku 2. Przypisać go do Image, 3. Zapisać Recipe w bazie
@Hirunkan: Chodzi zasadniczo o to, żeby wysłać program bez bazy danych. Pierwsze uruchomienie tworzy bazę. No i mam kilka opcji z utworzeniem ale żadne nie działa, albo nie wiem jak to wykorzystać. Próbowałem :
Image = File.ReadAllBytes("~/images/gl.jpg")
I wielu innych opcji. @grubson234567 ale jak to wrzucić w Image?
@gdziemojimbuspiatka: A czemu nie możesz wykorzystać podobnego podejścia jak przy uploadzie? Tzn. Filestream do MemoryStream i od tego miejsca tak samo.
I wielu innych opcji. @grubson234567 ale jak to wrzucić w Image?
@gdziemojimbuspiatka: Praktycznie każdy obiekt można skonwertować na tablicę byte. Robisz taką konwersje z image > byte[] > Base64 string. I w drugą stroną tak samo możesz dekodować. Stack overflow czy wujek googla w tym pomoże :) Ja ci gotowej metody nie dam bo nie wiem na jakim projekcie i frameworku tam obecnie siedzisz.
@mackarr: spróbowałem zrobić to w ten sposób i też nie działa. Nie tworzy mi wpisu Chyba, że źle określam ścieżkę pliku. Ale jak w takim razie dostać się do folderu images w głównym katalogu projektu? Bez podawania pełnej ścieżki. bo projekt ma być odpalony na innym pc
@gdziemojimbuspiatka: Wyciągnij to z using i daj w try catch bo jestem w 99% pewien że dostaniesz exception o niemożliwości otwarcia pliku. Tylda oznacza katalog domiwy użytkownika. Możesz spróbować zamienić tylde na kropkę. Ale najlepiej jak poczytasz o resourcach i odwoływaniu się do nich.
No i przy tworzeniu nowego wpisu do bazy danych nie ma problemu. Korzystam z
W CSie mam kod:
Upload.CopyTo(target);
Recipe.Image = target.ToArray();
Potem podobnie zczytuje i wyświetlam. Wszystko Git.
Ale prowadzący chce, aby aplikacja sprawdzała po uruchomieniu czy jest baza danych, jak nie ma to żeby ją tworzyła i kilka wpisów było predefiniowanych przy tworzeniu. I jak z dodawaniem stringów sobie poradziłem, tak z dodaniem zdjęcia nie mam pomysłu. Może mi ktoś pomóc albo naprowadzić gdzie tego szukać?
źródło: comment_1622228938FCqPLRtX7J7yTVXPc8WHtr.jpg
Pobierzhttps://stackoverflow.com/questions/21325661/convert-an-image-selected-by-path-to-base64-string
Jeśli nie to nie widzę przeszkód, aby:
1. Wczytać obrazek z pliku
2. Przypisać go do Image,
3. Zapisać Recipe w bazie
Próbowałem :
I wielu innych opcji.
@grubson234567 ale jak to wrzucić w Image?
@gdziemojimbuspiatka: Praktycznie każdy obiekt można skonwertować na tablicę byte. Robisz taką konwersje z image > byte[] > Base64 string. I w drugą stroną tak samo możesz dekodować. Stack overflow czy wujek googla w tym pomoże :) Ja ci gotowej metody nie dam bo nie wiem na jakim projekcie i frameworku tam obecnie siedzisz.
Chyba, że źle określam ścieżkę pliku. Ale jak w takim razie dostać się do folderu images w głównym katalogu projektu? Bez podawania pełnej ścieżki. bo projekt ma być odpalony na innym pc
źródło: comment_1622361884nV3lZet6z0IJa1RlZHlCVI.jpg
Pobierz