Well, I can't give you a complete solution, but I can give you some tips.
Take things one step at a time.
As with any project, start with a plan. Perhaps draw out the basic site structure/database relationships on paper. You may have databases including the users, the website pages, the file links and so on. Where relationships go, you may have some link between the users and the file links to know which files they can access. When you have file links, you can use PHP to retrieve those links and list them out for each user, for example, using a loop and echo "<li>"; echo $link; echo "</li>" is one possible way. You can worry about how it is actually represented later, I generally leave styling to the end once the main structure is set up.
Once you've set up some basic functionality, you might then wish to add a user creation section. Of course, a form with required fields, validation and error handling and so on would be useful here. After that, you will want to work on logging in users, perhaps use sessions and cookies to make sure no one accesses anyone else's pages. If you are going to have a massive amount of users, you should also be concerned with what server you will be using and whether it can handle such large amounts of users.
You will also need to provide a method to upload files and store them appropriately on your server. If you wish to provide users with the option to alter/send their files, one way of doing it is to provide the receiver with permission to access that file's link (if it is private).
Be aware that the suggestions may go on forever for such an open ended question as this, do not expect anyone to give you a detailed guide to building the website just the way you want to. Again, do not tackle the problem as a whole but rather, split the problem into smaller, more easily solvable parts and build on that. Also, if it is a really large project, consider getting a partner or even a team, your work flow should be smoother and you will be able to come up with more ideas. If you plan to do so, get people who will complement your skills, who perhaps do better in some web development aspects than you do, in the end, working with another you isn't what you want.
Do some research and experiment, if you have any questions that someone can answer in a realistic amount of time, you'll be able to find more precise answers, good luck!