Think about the situation where your check comes back and says "the connection is there", and before you can start your FTP, the connection drops.
Or where the connection drops part way through your FTP request.
Given that you have to code for these situations anyway, just skip the check
Edit in response to Jason's comments
You can also have the opposite condition occur - that when you check for a connection, none exists, but a moment later, their connection comes up. So now what do you do - do you start nagging the user about the absence of a connection, even though it's now available?
At the end of the day, you're dealing with a large number of resources (your net connection, any intermediate routers, the host, its FTP service). All of these are subject to change outside of your control (as Seth's comment indicated), and no amount of pre-testing will answer the question "will I be able to complete this upload"?
As the OP indicated that he's thinking of a "back off and try again later" approach, then I think it's appropriate to do all of that in the background and not annoy the user at all - unless you've been trying for an "unreasonable" amount of time without success.