I see a few things... first, your table name and columns the way you've quoted them are string literals. If you want to use delimiters for your table and column names they should be the right-facing single quote (apologies, I don't know the proper name) which shares a key with the tilde character.
Second, it looks like you're trying to use an auto-increment field called ID, since you're trying to pass an empty string... you can just omit that column altogether.
Third, you're passing the query as a variable, but since it's in a single-quoted string, PHP is interpreting your entire string literally, and sending the query "$sql" to MySQL, which is not understood.
Fourth, "or die" is syntax provided by PHP, not MySQL, so you can't include it in your query. If you want to check for errors, you should do if(!mysql_query($sql)) echo mysql_error();
So, if you make the following changes, it ought to work:
date) VALUES('$file_copy','$file','$filename','$category','$description', '$date')";
$result = mysql_query($sql);
if(!$result) echo mysql_error();