For the upload you can use dcc.Upload(), you will need to take care of the encoding though. Here a related topis:
As far as storing the uploaded file it depends on the size of it. If it’s small, and JSON serializable you can use a dcc.Store(). Else you could use dash-extensions ServersideOutput