通过REST读取和发送图像作为base64编码的字符串

时间:2012-09-10 15:56:17

标签: php javascript rest air base64

我正在研究PHP中的RESTful API,它允许在其他数据中发布图像。在基于PHP的客户端中,发布的base64编码字符串是这样获得的:

$string = base64_encode( file_get_contents('image.jpg') );

然后只需通过反转就可以在API端进行解码:

file_put_contents('new-image.jpg', base64_decode($string));

这适用于基于PHP的客户端,但现在我正在尝试使用Adobe Air进行测试。以下内容的结果是一个相当大的base64编码字符串,但一旦遇到API就无法正确解码:

var fs = new air.FileStream();
var file = air.File.desktopDirectory.resolvePath(files[0].nativePath);
var photoData = '';

fs.open(file, air.FileMode.READ);

for( var i = 0; i < fs.bytesAvailable; i++ ) {
    photoData += fs.readByte();
}

fs.close();

photoData = btoa(photoData); // base64-encoded string

此时,我想知道btoa()是否是与PHP使用的编码方法不同的编码方法,或者我是否只是将字节不正确地组合成字符串。

知道我哪里出错了吗?我一直在看这个太久了:))

0 个答案:

没有答案