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.
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és5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023111 14 janv. 2019 à 09:47
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és5374Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention 3 mars 2023111 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";
}
?>
Modifié le 14 janv. 2019 à 09:24
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
14 janv. 2019 à 09:47
Modifié le 14 janv. 2019 à 10:00
Mon problème c'est au niveau du serveur et non au niveau de mon application mobile.
14 janv. 2019 à 10:08
Comment puis-je le transformer pour faire l'enregistrement de plusieurs à la fois ?
Merci
14 janv. 2019 à 11:22
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):