Witam, piszę aplikację webową w ASP MVC5. Jedno z wymagań to możliwość dodania z panelu administracyjnego artykułu z załączonym obrazkiem. Tutaj pojawia się moje pytanie- jak najlepiej to osiągnąć? Czy zapisać plik do bazy danych, a jeśli tak to jak go następnie wczytać z poziomu view? Czy może dynamicznie dodawać pliki jako resources i zapisywać bezpośrednio na dysku z pominięciem bazy danych? Czy są jakieś przyjęte standardy co do przechowywania i wczytywania plików (nie koniecznie zdjęć)?
- Rejestracja:ponad 11 lat
- Ostatnio:3 minuty
- Postów:362
W bazie trzymasz path do pliku na dysku. Jak go wrzucisz twój wybór. Dla przykładu w pracy w naszym CMS mamy tak, że pliki są wrzucane za pomocą AJAXA na serwer i zwracany jest id z tabeli Files. Przy kliknięciu "zapisz" Id przekazane jako tablica do kontroler(z innymi danymi). Artykuł i plik są wiązane w tablicy pośredniej, gdzie jest tylko id artykułu i id pliku.

- Rejestracja:prawie 9 lat
- Ostatnio:ponad 2 lata
- Lokalizacja:UK
- Postów:2235
Dzięki za odpowiedź. Zastanawiam się jak to będzie wyglądać w przypadku wystawienia strony na hostingu, np. GoDaddy czy WinHost. Nie orientujesz się czy nie ma w takim przypadku problemów z uprawieniami do zapisywania plików?

- Rejestracja:około 17 lat
- Ostatnio:4 minuty
- Lokalizacja:Wrocław
Mogą być problemy, ale często wystarczy po prostu ustawić kontu na którym chodzi pula aplikacji
Alternatywnie można też trzymać pliki w bazie. Szczegółowa implementacja zależy od bazy danych, no i ma swoje wady (czas backupowania, rozmiar bazy) i zalety (łatwość backupowania, transakcyjność, uprawnienia).
A ja to bym w ogóle wystawił jakiś oddzielny serwis do plików i na S3 wrzucił.

- Rejestracja:prawie 9 lat
- Ostatnio:ponad 2 lata
- Lokalizacja:UK
- Postów:2235
Ciekawy pomysł z tym S3, muszę poczytać. Jakby ktoś jeszcze miał jakieś pomysły/doświadczenia to proszę pisać. Tak z ciekawości- jak z tym problememem radzi sobie chociażby 4P @Adam Boduch ?
Aventus napisał(a):
Ciekawy pomysł z tym S3, muszę poczytać. Jakby ktoś jeszcze miał jakieś pomysły/doświadczenia to proszę pisać. Tak z ciekawości- jak z tym problememem radzi sobie chociażby 4P @Adam Boduch ?
Prosto: plik na dysku + nazwa pliku zapisywana w bazie danych. Jednak zapis/odczyt pliku następuje poprzez warstwę abstrakcji - bibliotekę, która w prosty sposób umożliwia podmianę lokalnego systemu plików na - np. AWS S3. Czyli dostępne są różne adaptery. My, póki co korzystamy z adaptera filesystem
.

- Rejestracja:prawie 9 lat
- Ostatnio:ponad 2 lata
- Lokalizacja:UK
- Postów:2235
Dzięki za odpowiedź. Skontaktowałem się z jednym z hostingów i wspierają bezpośredni zapis plików także chyba pójdę tą drogą zamiast za bardzo komplikować. Dodam również tak jak piszesz warstwę abstrakcji gdybym miał w przyszłości zmienić źródło plików.
Aventus