Some time ago we used local storage on servers. It is ok as long, as you would not keep many files. It can have some security advantage, if you have good security team. Biggest issues are disk space and network capacity.
In many apps we need to restrict access to files, so we do not put files on public, but process request through php/node/python/etc. and return file as response if user has access to it. For us it was easier to keep such files on the same server as app… But we had problems with disk space. When we use the same server for media and data processing, you can do less, because some of your resources are used for media transfer… For few years I avoid local storage.
So you can create your own file server, but why you would do that? Only reasons which come to my mind are: security and full control over storage. But there is always some solution for example if you need to set some access restriction, in many cases you can restrict access to storage and use APIs to get files and process them within your app.
Right now, when we build simple page with few images, we put image in public and use some cache… But In most cases we use amazon S3 (we use AWS a lot...). If you build social media website consider some 3rd party storage. If you need it only for image consider some service build around images like cloudinary.com (they have not only storage and cdn, but also lot of good stuffs like auto resizing/croping, dynamic resize/crop based on url etc.)
Remember also about some cdn and cache if it is not built-in.
The biggest benefits of 3rd parties are:
There can be some legal problems, so you need to consider how image access should be restricted, how they are secured, in which country physical servers are etc.