Maybe its not what you need but why instead of using expensive wifi shields etc just don't buy something like asus eee pc for 30$ from ebay.
It has wifi,bluetooth,enough space,battery.
Connect your arduino with the usb cable and just send the data form arduino to the pc.
Then you can send this data to everywhere,store,process etc..
For my robot I decided to use eee pc+arduino for communication because it was 10x cheaper and 10xbetter then buying 3G shield,wi-fi shield,sd card etc...
And it is very reliable solution