Głównie PHP, jeśli chcesz to JSa też można użyć.
Sprawdzasz czy użytkownik jest zalogowany - jeżeli tak pozwalasz mu dodać wpis. Robisz jakiś tam formularz z potrzebnymi polami oraz inputem do wybrania pliku. Po wysłaniu formularza walidujesz jak tam potrzeba, plik wrzucasz na serwer, zmieniasz mu nazwę na jakiś losowy ciąg znaków (może być przykładowo wygenerowana z jakiejś funkcji haszującej) i na koniec wrzucasz tą nazwę pliku wraz z resztą informacji o tym wpisie do bazy. JS jest niby wcale nie potrzebny, możesz zastosować go jako dodatek przy walidacji czy coś.
Wyświetlanie wpisów to po prostu SELECT i odpowiednie podstawienie nazwy obrazka do HTMLowego tagu img.
To na tyle w skrócie mówiąc.