Android Envoi multiple photos vers serveur

- - Dernière réponse : Twinuts
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
- 14 janv. 2019 à 11:22
Bonjour,

Je suis sur un projet Androi qui me demande de permettre à l'utilisateur de pouvoir sélectionner plusieurs photos à la fois et de les envoyer en un seul lot vers un serveur de préférence MySQL avec php.
J'arrive à l'envoi d'une seule photo vers le serveur, mais, je sais procéder pour faire l'envoi multiple de photos vers mon serveur avec quelques variables.
Est-ce que vous pouvez me proposer des liens ou des pistes pour y arriver ?

J'ai déjà bien parcouru Google, mais, sans satisfaction.

Merci
Afficher la suite 

Votre réponse

1 réponse

Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
99
0
Merci
Salut,

Si tu utilises les requêtes POST (HTTP) pour envoyer tes images, inspire toi de ce qui est fait ICI, sinon merci de préciser.

Bonjour Twinuts,

Au fait, le client a la possibilité de sélectionner une ou plusieurs images à partir d'un seul bouton. Donc, au cas où l'utilisateur sélectionne un nombre donné d'images, ce qui veut dire que c'est une collection d'images qu'il envoie à partir de son application mobile vers mon serveur. Mon problème, c'est comment récupérer et enregistrer chaqu'une de ces images dans ma base de données sur mon serveur ?

C'est tout mon problème. Je crois que avec Json, ça se fait. Mais, je n'y arrive pas toujours.

Si vous pouvez m'aider à réaliser cela.

Merci
Twinuts
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
99 -
Donc ton problème est plus au niveau de ton serveur php ?
C'est toujours le php. C'est juste comment faire l'enregistrement de ces images reçues dans ma base de données qui est mon problème.
Mon problème c'est au niveau du serveur et non au niveau de mon application mobile.
Avec le code suivant par exemple, j'arrive à faire l'enregistrement d'une seule image dans ma base de données. Comment faire maintenant pour l'enregistrement de plusieurs images qui est envoyé à partir d'un seul bouton ?

<?php
	$servername = "**********";
	$username = "*********";
	$password = "*****";
	$dbname = "******";
?>
<?php
	$conn = new mysqli($servername, $username, $password, $dbname);
	if($_SERVER['REQUEST_METHOD'] == 'POST'){
		$DefaultId = 0;
		$ImageData = $_POST['image_data'];
		$ImageName = $_POST['image_tag'];
		$telephone2 = $_POST['telephone'];
		$pass2 = $_POST['pass'];
		$nom2 = $_POST['nom'];
		$id_android2 = $_POST['identifiant'];
		$monent_actuel = gmdate('Y-m-d H:i:s');
		$ImagePath = "photos/$ImageName.jpg";
		$ServerURL = $ImageData;
		$InsertSQL = "INSERT INTO imageupload_ok (image_path,image_name,telephone,pass,nom,id_android,momentPhoto) values('$ServerURL','$ImageName','$telephone2','$pass2','$nom2','$id_android2','$monent_actuel')";
		echo "Connexion au serveur...";
		if(mysqli_query($conn, $InsertSQL)){
			file_put_contents($ImagePath,base64_decode($ImageData));
			echo "Votre photo est est ajoutee a votre compte";
		}
		else{
			echo "Une erreur est arrivee dans php";
		}
		mysqli_close($conn);
	}
	else{
		echo "Nous avons rencontre une erreur; Essayez a nouveau";
	}
?>


Comment puis-je le transformer pour faire l'enregistrement de plusieurs à la fois ?
Merci
Twinuts
Messages postés
5313
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 janvier 2019
99 -
Si tu indexes ton tag dans ta requête POST:
Coté android indexe les tags image_data et image_tag au moment de leurs insertions dans ta requête.
au niveau du PHP il suffit de tester la présence ex (il y a surement mieux pour le faire mais je ne suis pas dev php):
<?php
	$conn = new mysqli($servername, $username, $password, $dbname);
	if($_SERVER['REQUEST_METHOD'] == 'POST'){
		$DefaultId = 0;
		$telephone2 = $_POST['telephone'];
		$pass2 = $_POST['pass'];
		$nom2 = $_POST['nom'];
		$id_android2 = $_POST['identifiant'];
		$monent_actuel = gmdate('Y-m-d H:i:s');
                $index = 1;
                while(isset($_POST['image_data$index'], $_POST['image_tag$index'])) {
		  $ImageData = $_POST['image_data$index'];
		  $ImageName = $_POST['image_tag$index'];
                  $index++;

		  $ImagePath = "photos/$ImageName.jpg";
		  $ServerURL = $ImageData;
		  $InsertSQL = "INSERT INTO imageupload_ok (image_path,image_name,telephone,pass,nom,id_android,momentPhoto) values('$ServerURL','$ImageName','$telephone2','$pass2','$nom2','$id_android2','$monent_actuel')";
		  echo "Connexion au serveur...";
		  if(mysqli_query($conn, $InsertSQL)){
			file_put_contents($ImagePath,base64_decode($ImageData));
			echo "Votre photo est est ajoutee a votre compte"; /* <- surement un truc à faire ici pour ne pas l'afficher tout le temps. */
		  }
		  else{
			echo "Une erreur est arrivee dans php";
		        mysqli_close($conn);
                        break;
		  }
                }
		mysqli_close($conn);
	}
	else{
		echo "Nous avons rencontre une erreur; Essayez a nouveau";
	}
?>

Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.