I've never had any luck with upholstery cleaner from a can. It looks great after application until a drop of water hits the seat. Then all the dirt comes back to the surface.
Most hardware stores will rent steam cleaners for about $20 a day or so, and that's what I do when I need to clean the interior. They come with an attachment for upholstery and work very well. However you will spend a bit of money on the cleaning fluid they need so figure $60 or so for the whole job.
I used to use Meguiar's "All purpose cleaner" from their detailer line. Dilluted 10:1 with a foam sprayer nozzle and a brush made specifically for automotive interior use (I used the same brush on the delicate door panel fabric without damage). It worked very well and the cleaner has a fabric softener and brightener in it which leaves it feeling nice.