In most cases when users upload files using FTP all goes well. In some cases mistakes are made on proper upload settings.
Some Files require to be uploaded in Binary verses ASCII. Most FTP applications will auto switch based on file types in a stored list. This works for most cases but if the file type you are uploading is not in the list or if this is a compiled version of PHP then you will get a error when trying to access the file. Better FTP applications allow you to add file types to the list so that it will switch to the correct method.
FTP Pro defaults to Binary and it has a ASCII list of file type to switch to ASCII.
In the Case of Compiled applications such as PHP or CGI this will require you to upload it in Binary by setting the FTP from AUTO to Binary. All FTP applications that support Auto setting also have a setting for the three choices - Auto, ASCII and Binary.
How do you know which setting is correct? The basic rule is this - if you can't read this file when opened in Wordpad then it's Binary. It should not have funny characters or text that can not be read. But to be sure refer to the documentation or readme file given with it or contact the software vendor to see correct FTP upload settings.
Also be aware that file permissions may also cause problems if not set properly.