appcelerator钛base64编码blob对象

时间:2011-06-27 12:47:33

标签: base64 blob titanium appcelerator encode

我正在使用appcelerator titanium(sdk 1.6.2)开发移动(iphone / android)应用程序。 在应用程序的某个点,用户选择一个应该在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 个答案:

答案 0 :(得分:3)

var imgStr=Ti.Utils.base64encode(image.toString());

.toString()将某些内容转换为字符串表示

答案 1 :(得分:1)

这对我有用。

var image = event.media;
var imgStr = Ti.Utils.base64encode(image).toString();

答案 2 :(得分:0)

我刚刚发布了一些模块的代码来进行此转换,我知道补丁来自appcelerator,但该模块现在可能对您有用。

Clearly Innovative Thoughts - Titanium Appcelerator Quickie: base64encode iOS Module