Michael
- Forum-Beiträge: 19
06.06.2012, 11:21:10 via Website
06.06.2012 11:21:10 via Website
Hi Leute,
ich hab ein kleines Problem mit dem Auslesen eines Images aus meiner MySQL DB. Im Netz habe ich schon ziemlich viel gesucht und auch einiges gefunden, aber nichts hat mein Problem gelöst (bin halt noch ein relativer Anfänger )
Also ich habe eine MySQL DB in der ich in einer Tabelle Bilder speichere. Das Tabellenfeld ist vom Typ "long blob". Die Bilder habe ich mittel PHP Admin hochgeladen.
Nun würde ich diese gerne wieder mittels meiner App laden und anzeigen.
Hier mal etwas Code:
PHP
Bei meiner Suche habe ich erfahren, dass PHPAdmin Bilder nicht codiert speichert. Dann habe ich die Zeile :
$db_img = base64_decode($db_img); entfernt mit folgendem Ergebnis:
json_encode() [<a href='http://de.php.net/function.json-encode'>function.json-encode</a>]: type is unsupported, encoded as null in
(davor stehen dann noch recht viele Sonderzeichen : PNGn.....
Wenn ich $db_img = base64_decode($db_img) verwende, habe ich das Ergebnis:
Und hier noch meine Funktion in meiner App:
Ich hoffe ihr könnt mir weiterhelfen. Ich habe schon alles probiert, was ich finden konnte aber ich komme einfach nicht auf den Fehler
Vielen Dank für Eure Hilfe...
Gruß
Michael
ich hab ein kleines Problem mit dem Auslesen eines Images aus meiner MySQL DB. Im Netz habe ich schon ziemlich viel gesucht und auch einiges gefunden, aber nichts hat mein Problem gelöst (bin halt noch ein relativer Anfänger )
Also ich habe eine MySQL DB in der ich in einer Tabelle Bilder speichere. Das Tabellenfeld ist vom Typ "long blob". Die Bilder habe ich mittel PHP Admin hochgeladen.
Nun würde ich diese gerne wieder mittels meiner App laden und anzeigen.
Hier mal etwas Code:
PHP
1$drivers = $db->getAllDriver();
2 if ($drivers != false) {
3 while($driver=mysql_fetch_assoc($drivers))
4 {
5 // plans found
6 // echo json with success = 1
7 // response Array
8 $response = array("tag" => $tag, "success" => 0, "error" => 0);
9 $response["success"] = 1;
10 $response["_id"] = $driver["_id"];
11 $response["lastname"] = $driver["lastname"];
12 $response["firstname"] = $driver["firstname"];
13 $response["email"] = $driver["email"];
14 $response["mobile"] = $driver["mobile"];
15
16 //getting image
17 $db_img = $driver["image"];
18// $db_img = base64_decode($db_img);
19
20 $db_img = imagecreatefromstring($db_img);
21 if ($db_img != false)
22 {
23 // header("Content-Type: image/png");
24 imagepng($db_img);
25 }
26 $response["image"] = $db_img;
27 imagedestroy($db_img);
28 $response["postal"] = $driver["postal"];
29 $output[]=$response;
30 }
31 echo json_encode($output);
32
33 } else {
34 // no plans not found
35 // echo json with error = 1
36 $response["error"] = 1;
37 $response["error_msg"] = "Incorrect request. No driver found!";
38 }
2 if ($drivers != false) {
3 while($driver=mysql_fetch_assoc($drivers))
4 {
5 // plans found
6 // echo json with success = 1
7 // response Array
8 $response = array("tag" => $tag, "success" => 0, "error" => 0);
9 $response["success"] = 1;
10 $response["_id"] = $driver["_id"];
11 $response["lastname"] = $driver["lastname"];
12 $response["firstname"] = $driver["firstname"];
13 $response["email"] = $driver["email"];
14 $response["mobile"] = $driver["mobile"];
15
16 //getting image
17 $db_img = $driver["image"];
18// $db_img = base64_decode($db_img);
19
20 $db_img = imagecreatefromstring($db_img);
21 if ($db_img != false)
22 {
23 // header("Content-Type: image/png");
24 imagepng($db_img);
25 }
26 $response["image"] = $db_img;
27 imagedestroy($db_img);
28 $response["postal"] = $driver["postal"];
29 $output[]=$response;
30 }
31 echo json_encode($output);
32
33 } else {
34 // no plans not found
35 // echo json with error = 1
36 $response["error"] = 1;
37 $response["error_msg"] = "Incorrect request. No driver found!";
38 }
1/**
2 * Get all Driver
3 */
4 public function getAllDriver() {
5 $result = mysql_query("SELECT * FROM `fahrer`") or die(mysql_error());
6 // check for result
7 $no_of_rows = mysql_num_rows($result);
8 if ($no_of_rows > 0) {
9 return $result;
10 } else {
11 // user not found
12 return false;
13 }
14 }
2 * Get all Driver
3 */
4 public function getAllDriver() {
5 $result = mysql_query("SELECT * FROM `fahrer`") or die(mysql_error());
6 // check for result
7 $no_of_rows = mysql_num_rows($result);
8 if ($no_of_rows > 0) {
9 return $result;
10 } else {
11 // user not found
12 return false;
13 }
14 }
Bei meiner Suche habe ich erfahren, dass PHPAdmin Bilder nicht codiert speichert. Dann habe ich die Zeile :
$db_img = base64_decode($db_img); entfernt mit folgendem Ergebnis:
json_encode() [<a href='http://de.php.net/function.json-encode'>function.json-encode</a>]: type is unsupported, encoded as null in
(davor stehen dann noch recht viele Sonderzeichen : PNGn.....
Wenn ich $db_img = base64_decode($db_img) verwende, habe ich das Ergebnis:
1<style>.bpe a:link, .bpe a:visited, .bpe a:active { color: #0b4c8e; text-decoration: none; } .bpe a:hover { color: #0D7CEC; }</style>n<span class="bpe" style="font: 11px/1.2em Verdana, sans-serif;"><br />n<b>Warning</b>: imagecreatefromstring() [<a href='http://de.php.net/function.imagecreatefromstring'>function.imagecreatefromstring</a>]: Empty string or invalid image in <b>/users/spike78/www/fahrgemeinschaft/index.php</b> on line <b>75</b><br />n</span><style>.bpe a:link, .bpe a:visited, .bpe a:active { color: #0b4c8e; text-decoration: none; } .bpe a:hover { color: #0D7CEC; }</style>n<span class="bpe" style="font: 11px/1.2em Verdana, sans-serif;"><br />n<b>Warning</b>: imagedestroy() expects parameter 1 to be resource, boolean given in <b>/users/spike78/www/fahrgemeinschaft/index.php</b> on line <b>82</b><br />n</span>[{"tag":"all_driver","success":1,"error":0,"_id":"1","lastname":"Kunz","firstname":"Michael","email":"michael.kunz@softwareag.com","mobile":"015124204101","image":false,"postal":""}]n
Und hier noch meine Funktion in meiner App:
1public JSONArray getJSONFromUrl(String url, List<NameValuePair> params) {
2
3 // Making HTTP request
4 try {
5 // defaultHttpClient
6 DefaultHttpClient httpClient = new DefaultHttpClient();
7 HttpPost httpPost = new HttpPost(url);
8 httpPost.setEntity(new UrlEncodedFormEntity(params));
9
10 HttpResponse httpResponse = httpClient.execute(httpPost);
11 HttpEntity httpEntity = httpResponse.getEntity();
12 is = httpEntity.getContent();
13
14 } catch (UnsupportedEncodingException e) {
15 e.printStackTrace();
16 } catch (ClientProtocolException e) {
17 e.printStackTrace();
18 } catch (IOException e) {
19 e.printStackTrace();
20 }
21
22 try {
23 BufferedReader reader = new BufferedReader(new InputStreamReader(
24 is, "iso-8859-1"), 8);
25 StringBuilder sb = new StringBuilder();
26 String line = null;
27 while ((line = reader.readLine()) != null) {
28 sb.append(line + "n");
29 }
30 is.close();
31 json = sb.toString();
32 Log.e("JSON", json);
33 } catch (Exception e) {
34 Log.e("Buffer Error", "Error converting result " + e.toString());
35 }
36
37 // try parse the string to a JSON object
38 try {
39 jArray = new JSONArray(json);
40 } catch (JSONException e) {
41 Log.e("JSON Parser", "Error parsing data " + e.toString());
42 return null;
43 }
44
45 // return JSON String
46 return jArray;
47
48 }
2
3 // Making HTTP request
4 try {
5 // defaultHttpClient
6 DefaultHttpClient httpClient = new DefaultHttpClient();
7 HttpPost httpPost = new HttpPost(url);
8 httpPost.setEntity(new UrlEncodedFormEntity(params));
9
10 HttpResponse httpResponse = httpClient.execute(httpPost);
11 HttpEntity httpEntity = httpResponse.getEntity();
12 is = httpEntity.getContent();
13
14 } catch (UnsupportedEncodingException e) {
15 e.printStackTrace();
16 } catch (ClientProtocolException e) {
17 e.printStackTrace();
18 } catch (IOException e) {
19 e.printStackTrace();
20 }
21
22 try {
23 BufferedReader reader = new BufferedReader(new InputStreamReader(
24 is, "iso-8859-1"), 8);
25 StringBuilder sb = new StringBuilder();
26 String line = null;
27 while ((line = reader.readLine()) != null) {
28 sb.append(line + "n");
29 }
30 is.close();
31 json = sb.toString();
32 Log.e("JSON", json);
33 } catch (Exception e) {
34 Log.e("Buffer Error", "Error converting result " + e.toString());
35 }
36
37 // try parse the string to a JSON object
38 try {
39 jArray = new JSONArray(json);
40 } catch (JSONException e) {
41 Log.e("JSON Parser", "Error parsing data " + e.toString());
42 return null;
43 }
44
45 // return JSON String
46 return jArray;
47
48 }
Ich hoffe ihr könnt mir weiterhelfen. Ich habe schon alles probiert, was ich finden konnte aber ich komme einfach nicht auf den Fehler
Vielen Dank für Eure Hilfe...
Gruß
Michael
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.