2012-02-06 2 views
3

Я читал много сообщений о обработке blob PHP/JSON, но никто, кажется, не дает четкого примера о том, как действовать. Я пытаюсь связаться с базой данных SQL на сервере. В рассматриваемой таблице есть поле средней четкости. Я использую PHP и JSON для захвата данных и отображения их на телефоне Android. У меня нет проблем с данными non-blob. Я могу схватить его и показать его без проблем. Тем не менее, данные blob всегда возвращаются как «null» через JSON. Я понимаю, что JSON напрямую не поддерживает двоичные данные, но, по-прежнему остается вопрос, как мне получить доступ к данным blob из системы Android? Данные blob в основном представляют собой текстовые файлы (например, .PDF, .DOC и т. Д.). Я не контролирую таблицу SQL. Что еще более важно, как мне получить поле blob, упакованное вместе с остальными данными, чтобы я мог обработать его на платформе Android? Любая помощь будет принята с благодарностью.Возвращение SQL Blob из PHP JSON

+0

возможно дубликат http://stackoverflow.com/questions/4855447/how-to-use-blob-with-json-and-php –

+0

Эй - Для некоторых сценариев base64 кодирование двоичных данных решает многие проблемы. Он будет иметь размер 3/2 исходных данных на проводе, что является проблемой, но все данные являются алфавитами, поэтому их легко переносить. Это вызывает накладные расходы как на стороне сервера, так и на стороне клиента, но я не знаю о поддержке php, но, возможно? – faester

ответ

1

Хранение двоичных данных в таблице базы данных может быть плохой идеей, посмотреть на этот вопрос: Storing Images in DB - Yea or Nay?

Вы можете использовать base64_encode() в PHP для кодирования двоичных данных.

В PHP это может выглядеть примерно так:

$row = mysql_fetch_assoc($res); 
foreach($row as $key => $value){ 
    $json[$key] = base64_encode($value); 
} 
echo json_encode($json); 
Смежные вопросы