I charge 50% deposit and the rest is due after 30 days. That has kept a lot of clients from dragging out providing me with content. Once they paid for everything, they are more inclined to get you what you need.
But I can't say that I have never waited on content.... honestly the clients always think that it is easy to write content until they get to it.
I think, your best way is to tell them that you can provide them with a content writer, if they need one. Or add it into your price and just get it done.
If you have the chance, do the same thing with the photos. Charge them for a photo shoot. That way you make more money and you get your website images.
But I guess the question is how to get it from the client. Use dropbox it's free and every time you invite somebody to it, you get even more free space
