Android Envoi multiple photos vers serveur

ikelsilver - 11 janv. 2019 à 13:04
 iKelSilver - 4 févr. 2019 à 17:50
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

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 janv. 2019 à 08:12
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.

0
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 janv. 2019 à 09:47
Donc ton problème est plus au niveau de ton serveur php ?
0
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.
0
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
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 janv. 2019 à 11:22
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";
	}
?>

0
Rejoignez-nous