With no idea what line the error is reported on, and unindented code being a mess to read at the best of times, it's difficult to tell exactly where you problem is.
But ... it looks like you have spurious "}" after this:
Content-Length: ".$file_size."\n" .
"Content-Type: application/octet-stream; name=\"".$file_name."\"\n" .
"Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
}
You should expect to get syntax errors every day, probably many times a day while you are coding - we all do regardless of how much experience we have! Sometimes, we misspell a variable, or a keyword; sometimes we forget to close a string or a code block. Sometimes the cat walks over your keyboard and types something really weird. Sometimes we just forget how many parameters a method call needs.
We all make mistakes.
And because we all do it, we all have to fix syntax errors - and it's a lot quicker to learn how and fix them yourself than to wait for someone else to fix them for you! So invest a little time in learning how to read error messages, and how to interpret your code as written in the light of what the compiler is telling you is wrong - it really is trying to be helpful!
So read this:
How to Write Code to Solve a Problem, A Beginner's Guide Part 2: Syntax Errors[
^] - it should help you next time you get a compilation error!