We do the data transfer locally on the device. We had an early prototype that did things over the web, but it was too slow and was frustrating to use on 3G.
Edit for clarification: the transfer occurs locally and works while offline.
Locally would certainly be preferable (especially for iPads, where the user may not even have an internet connection).
And let's not forget that even iPhones can be away from cellular coverage.