appcelerator titanium base64 кодирует объекты BLOB-объектов - PullRequest
2 голосов
/ 27 июня 2011

Я занимаюсь разработкой мобильного (iphone / android) приложения с использованием appcelerator titanium (sdk 1.6.2).В определенный момент в приложении пользователь выбирает изображение, которое должно быть показано в imageView, закодировано в base64, а затем загружено на мой сервер.Проблема заключается в том, что событие успеха фотогалереи возвращает выбранное изображение в виде объекта blob, а метод Titanium.Utils.base64encode принимает только строковые значения!Есть ли способ конвертировать объекты Titanium.Blob в строки?

Вот фрагмент кода:

var imageView = Titanium.UI.createImageView({
height:200,
width:200,
top:20,
left:10,
backgroundColor:'#999'
});

Titanium.Media.openPhotoGallery({

success:function(event)
{
    var cropRect = event.cropRect;
    var image = event.media;//blob object

    // set image view
    Ti.API.debug('Our type was: '+event.mediaType);
    if(event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO)
    {
        imageView.image = image;// this works
        var imgStr=Ti.Utils.base64encode(image);// doesn't work because 'image' has to be a string!, but how?
    }
    else
    {

    }

    Titanium.API.info('PHOTO GALLERY SUCCESS cropRect.x ' + cropRect.x + ' cropRect.y ' + cropRect.y  + ' cropRect.height ' + cropRect.height + ' cropRect.width ' + cropRect.width);

},
allowEditing:true,
popoverView:popoverView,
arrowDirection:arrowDirection,
mediaTypes:[Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO]
});

Спасибо,

Ответы [ 3 ]

3 голосов
/ 09 июля 2011
var imgStr=Ti.Utils.base64encode(image.toString());

.toString () конвертирует что-либо в строковое представление

1 голос
/ 04 октября 2013

Это сработало для меня.

var image = event.media;
var imgStr = Ti.Utils.base64encode(image).toString();
0 голосов
/ 29 августа 2011

Я только что опубликовал некоторый код для модуля, чтобы выполнить это преобразование, я знаю, что патч исходит от appcelerator, но модуль может быть полезен вам сейчас.

Совершенно инновационные мысли - Titanium Appcelerator Quickie: base64encode iOS Module

...