我的android应用正在将位图图像(临时捕获)作为base64编码的字符串发送到远程服务器。下面的代码。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
takenImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
现在我正在使用以下代码解密图像
function base64_to_jpeg($base64_string, $output_file) {
// open the output file for writing
$ifp = fopen( $output_file, 'wb' );
#spliting the string on commas
#$data[ 0 ] == "data:image/png;base64"
#$data[ 1 ] == <actual base64 string>
$data = explode( ',', $base64_string );
// we could add validation here with ensuring count( $data ) > 1
fwrite( $ifp, base64_decode( $data[ 1 ] )); #
// clean up the file resource
fclose( $ifp );
return $output_file;
}
现在我得到一个错误
Undefined offset : 1 at base64_decode($data[1])
这意味着在data:image / png; base64部分之后没有字符串。但是我已经测试过字符串是否在发布请求之前。 如果我考虑整个接收到的字符串,那么我得到的图像将是绿色阴影图像,与所拍摄的图像无关,该图像是恒定的。
我想念什么吗?