Premièrement, il faut récupérer la photo à partir de l'emplacement où elle se trouve et l'afficher dans un ImageView.
Apartir de cela, nous allons récupéré la photo qui affichée et le transformé à une photo du type Bitmap et le stoqué dans
dans une variable du type Bitmap nommée par exemple image.
Cette variable doit avoir la porté globale.
Pour récupérer maintenant la photo:
image = ((BitmapDrawable) ImagePhoto.getDrawable()).getBitmap();
Après on doit créer une notre méthode qui transforme l'image récupéré en une chaine de caractère et cette chaine des caractères qui sera envoyée au serveur pour être enregistrer dans la base de donnée.
Supposons que nous avons crée une méthode qui reçoit en paramétre une donnée du type Bitmap et
retourne un String. nommée:
1 2 3 4 5 6 7 8
| public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//compression de l'image
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
} |
La valeur de retour de cette image doit à son tour être stocké dans une varaible du type String qu'on peut nommée par exemple
uploadImage.
uploadImage = getStringImage(image);
Une fois que cette variable reçoit l'image qui est transformée en chaine, nous pourrons en suite faire appel à une méthode
pour l'envoyer au serveur en utilisant classe AsyncTask en envoyant les donnée par la méthode Post.
Si par exemple dans notre code d'envoi, nous avons précisé le nom du champs comme photo alors au niveau
du php à l'aide de la méthode Post['Photo'] on pourra la récupérer.
1 2
| List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("photo", uploadImage)); |
Au niveau du PHP:
-récupérer la photo: $photo= $_POST['photo'];
-décoder la photo: $decodeimage=base64_decode("$photo");
-stockage de la photo: file_put_contents("images/".$nomphoto,$decodeimage);
C'est à vous de définir comment doit être le nom de la photo qu'on veut stocké dans le dossier images au niveau du serveur mais le nom de la photo doit avoir comme extension jpg.
La photo est transférée dans un dossier et le nom de l'image se trouvant dans la variable $nomphoto doit être stocké dans une table
de la base de données.
Partager