2011-05-20 1 views
4

L'application que j'ai dans les travaux utilise des données GPS pour marquer les fichiers à un emplacement que l'utilisateur peut ensuite revenir en arrière et voir à l'emplacement plus tard. Cependant je suis bloqué sur comment envoyer mes données au serveur que je veux que les utilisateurs puissent voir plus tard.Meilleure façon d'envoyer des données/fichiers en une transmission au serveur en android

Ce que j'étais curieux de savoir de la communauté ici, c'est quelle est la meilleure façon d'y parvenir. J'ai déjà les données GPS du gestionnaire de localisation et de ses classes associées mais je ne suis pas sûr de savoir comment les envoyer avec une image, un fichier son ou une vidéo en une transmission de données transparente vers le serveur où il peut être stocké récupéré plus tard par l'appareil en fonction des privilèges de l'utilisateur.

Sur le serveur, les données vont être sauvegardées dans une base de données postgresql et j'aimerais que toutes les données associées à chaque téléchargement soient liées à un tableau json quelconque, à savoir que l'application tire les données json tableaux associés à des positions et leurs marques. Donc, est-ce que je devrais envoyer les données GPS comme des chaînes littérales qu'un script sur le serveur peut analyser en format json et si oui est-il possible de le faire avec une image attachée à lui aussi ....... Je sais que c'est possible mais je suppose que je n'ai pas encore compris. Ou devrais-je utiliser une sorte de bibliothèque ou quelque chose pour lier l'image/les fichiers aux données GPS et les envoyer comme des données stockées dans un tableau JSON.

Répondre

2

Je trouve toujours que l'envoi de données textuelles (comme les valeurs gps) est plus facile s'il est effectué en JSON. Si vous devez y ajouter des fichiers image/son, vous pouvez le faire en encodant les données en base64 et en mettant la chaîne résultante dans le JSON. Personnellement, je n'aime pas les base64 pour 2 raisons:

  1. Il ajoute environ 37% de la taille des données
  2. S'il y a un problème avec la connexion que vous devez envoyer tout nouveau, plutôt que juste les fichiers qui ont été foirés.

Une autre façon est de lier des images/sons avec un UDID. Vous envoyez le JSON en premier avec les références, puis envoyez chaque fichier séparément à un gestionnaire sur le serveur qui accepte l'UDID comme argument afin qu'il sache quel fichier est reçu. Ainsi, lorsqu'il y a un problème de connexion, vous n'avez qu'à renvoyer un seul fichier.

+0

Salut merci pour la réponse. J'aime la deuxième des deux méthodes que vous avez indiquées. Comment je formaterais les données dans le tableau de style json en premier lieu. Je n'ai pas encore googlé, mais qu'est-ce qu'un UDID? –

+0

Désolé, signifiait UUID. Identificateur universel unique. Juste un identifiant qui est toujours garanti d'être unique. le format json serait quelque chose comme {"lat": 138.938, "lng": 65.4325, "image": "C4B24698-9B08-EC38-282DD4C642D3BE87", "son": "C4B24699-A93B-34CD-68224FA74B9E0276"}. Ensuite, vous enverriez chaque fichier à un gestionnaire comme http://www.server.com/uploadFile?uuid=C4B24698-9B08-EC38-282DD4C642D3BE87 – skorulis

Questions connexes