Bonjour, ça m'a fait toute une journée que je cherche une solution à ce problème :
je n'arrive pas à afficher une image que je charge depuis une base de donnés mysql en utilisant un php URL.
voici le code de la class LoadImage :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| @Override
protected void onPostExecute(Bitmap b) {
super.onPostExecute(b);
loading.dismiss();
imageView.setImageBitmap(b);
}
@Override
protected Bitmap doInBackground(String... params) {
String id = params[0];
String add = "http://192.168.1.30/save/load_image_from_db.php?id="+id;
URL url;
Bitmap image = null;
try {
url = new URL(add);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
image = BitmapFactory.decodeStream(connection.getInputStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
} |
le fichier php qui permet de charger l'image depuis la base de donnés mysql :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
$sql = "SELECT * FROM images WHERE id = '$id' ";
$con = mysqli_connect("localhost","root","","othmane");
$r = mysqli_query($con,$sql);
$result=mysqli_fetch_array($r);
header('content-type: image/jpeg');
echo base64_decode($result['image']);
mysqli_close($con);
}
else{
echo "Error";
}
?> |
je reçoie dans le LogCat cette erreur :
W/EGL_emulation: eglSurfaceAttrib not implemented
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe99e1a80, error=EGL_SUCCESS
D/skia: --- SkImageDecoder::Factory returned null
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xe8477170
l'erreur SkImageDecoder::Factory returned null veut dire que android n'a pas pu decoder le InputStream venu de connection.getInputStream()
cela veut dire qu'il y a un problem avec le fichier.php??
dans le manifest j'ai bien ajouté :
<uses-permission android:name="android.permission.INTERNET" />
Partager