As regards file upload, read
FileUpload.
Storing in the DB would probably involve a BLOB data type.
Downloading entails reading the BLOB from the DB, and then streaming the bytes to the client.
None of the steps is particularly hard, but the devil can be in the details. So take them one step at a time.