Most frequent mode of ftp upload failure is file interupted before upload completed.
Unfortunately what you end up with is a short / corrupted file on the server.
Presently, the only way to detect remote file corruption, that I know of, is to read the entire file from the server and compare to local file.
It would be awesome to be able to retrieve remote file length without retrieving the whole file in order to validate the remote file is likely not corrupt.
Retrieving data ...