![]() |
|
||||||||||
|
|
|
|||||
|
Здравствуйте.
Столкнулся с небольшой проблемой, хочу в базу (Mongo) записать байтарей и потом обратно вытянуть. Но что-то видимо не дочитал. Есть ли опыт у кого-то в подобном? front-end var lic:Object = new Object(); lic.emei = emei.text; lic.sign = MD5.hash(emei.text); lic.desc = desc.text; var ba:ByteArray = new ByteArray(); ba.writeObject(lic); ba.compress(); var send:Object = new Object(); send.lic = lic; send.ba = ba; AMF.call('User/licHandler', callbackHandler, send);
private function licenceHandler(data:Object):void { trace(data); var byteArray:ByteArray = data['52494f9c8bbf0eb0b8bd9c0d']['ba']['bin']; byteArray.uncompress(); var obj:Object = byteArray.readObject(); for ( var i in obj) { trace(i+" >> "+obj[i]); } } TypeError: Error #1034: Type Coercion failed: cannot convert "xÚãâfäLI-Nfc762äLÍMÍdc742æ,ÎLÏcs420JN²43JL6µ4072MÌ MRMÌ Çɤ" to flash.utils.ByteArray. Подскажите где может быть проблема. Может вытянув из MongoDB нужно "пересобрать" из BinData в ByteArray...
__________________
return this... |
|
|||||
|
пока так и оставил костыль с Base64
var lic:Object = new Object(); lic.emei = emei.text; lic.sign = MD5.hash(emei.text); lic.desc = desc.text; var ba:ByteArray = new ByteArray(); ba.writeObject(lic); ba.compress(); var send:Object = new Object(); send.lic = lic; send.base64 = Base64.encode(ba); AMF.call('User/licHandler', callbackHandler, send);
__________________
return this... |
|
|||||
|
1) Запишите объект в ByteArray
2) Запишите его в монго 3) Сразу же считайте с монго 4) Побайтово сверьте с тем, что было в пункте 1. 5) Отпишитесь о результате.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
На втором этапе AMF бросает еррор, мол не могу найти строку. Соответственно начал юзать гугл.
Но вот только что нашёл в чем проблема собственно. Я пытался запихнуть файл (ByteArray) через MongoBinData с типом 0х02 ( БайтАррей ), но в итоге получить обратно ByteArray не получилось и что самое интересное нигде не написали как же получить из бинарных данных обратно байтеррей. Оказалось что есть еще getGridFS, но не факт что это мне поможет. Буду пробывать. Пока стоит костыль с Base64, в принципе удовлетворяет, так как размер записываемого файла не большой и в итоге получаю запись в базе Цитата:
UPD: Цитата:
Добавлено через 27 минут проблема скорей всего заключается именно в записи ByteArray и получения его обратно из MongoDB
__________________
return this... |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|