Android — PHP кодирование изображений не работает

Я пытаюсь закодировать файл .jpg на моем сервере и отправить строку обратно в мое приложение для Android. Функция кодирования PHP, похоже, не работает — я всегда получаю нулевой ответ.

...

} else if ($tag == 'getPhoto') {
$filePath = $_POST['filePath'];
$filePath = mysql_real_escape_string($filePath);
$photo_str = $db->getPhotoString($filePath);
$photo_str = mysql_real_escape_string($photo_str);
if (!empty($photo_str)) {
echo $photo_str;
} else {
echo 'Something went wrong while retrieving the photo.';
}
}

...

public function getPhotoString($filePath) {
$type = pathinfo($filePath, PATHINFO_EXTENSION);
$photoData = file_get_contents($filePath);
$photo_str = 'data:image/' . $type . ';base64,' . base64_encode($photoData);
// $photo_str = 'test_response';
return $photo_str;
}

Я знаю, что мой путь к файлу правильный, потому что когда я его изменяю, я получаю сообщение об ошибке, в котором говорится, что файл / каталог не существует. И «test_response» работает, когда я раскомментирую его. Пожалуйста помоги!

ОБНОВЛЕНИЕ — соответствующий код Android:

HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(parameters));
HttpResponse response = httpClient.execute(httpPost);
photoString = convertResponseToString(response);
Log.d("string response", photoString);

public String convertResponseToString(HttpResponse response) throws IllegalStateException, IOException{
String res = "";
StringBuffer buffer = new StringBuffer();
is = response.getEntity().getContent();
int contentLength = (int) response.getEntity().getContentLength(); //getting content length…..
if (contentLength < 0) {
} else {
byte[] data = new byte[512];
int len = 0;
try {
while (-1 != (len = is.read(data))) {
buffer.append(new String(data, 0, len)); //converting to string and appending  to stringbuffer…..
}
} catch (IOException e) {
e.printStackTrace();
}
try {
is.close(); // closing the stream…..
} catch (IOException e) {
e.printStackTrace();
}
res = buffer.toString();     // converting stringbuffer to string…..
}
//System.out.println("Response => " +  EntityUtils.toString(response.getEntity()));
return res;
}

0

Решение

Это не ответ, а только предложение, но я не могу комментировать, так как мне не хватает репутации xD. Во всяком случае, вы пытались эхо $photoData после

$photoData = file_get_contents($filePath);

чтобы увидеть, заполнен ли он чем-то? Может быть, вы получите нулевой результат. Кроме того, вы можете сказать мне, что значение $ filePath, когда берется из переменной $ _POST и когда передается в getPhotoString($filePath) функционировать? Я думаю о чем-то не так с mysql_real_escape_string ().

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]