base64解码php android

时间:2014-08-21 00:47:08

标签: php android base64

我正在开发一款将照片发送到服务器并从Android进行保存的应用。图像以base64编码。当它被解码时,它显示全黑。

任何人都知道发生了什么?这是我使用的PHP代码。

$newFileName = uniqid();
$newFileName = $newFileName.$fileType;                  
$file = file_put_contents($path.'../../uploads/'.$user.'/'.$newFileName.'', base64_decode($file));

1 个答案:

答案 0 :(得分:0)

我猜你是从画布上传数据? 您需要先更正PNG数据并将其另存为PNG文件

$img_data = str_replace('data:image/png;base64,', '', $img_data);
$img_data = str_replace(' ', '+', $img_data);
$decoded_image = base64_decode($img_data);

$PNGfile = $_SERVER['DOCUMENT_ROOT']."/".$upload_path."/temp.png";
file_put_contents( $PNGfile ,$decoded_image);
png2jpg($PNGfile, $large_image_location, 80);

如果要将其转换为JPEG,此功能可以完成工作,然后删除PNG:

function png2jpg($originalFile, $outputFile, $quality) {
    $image = imagecreatefrompng($originalFile);
    imagejpeg($image, $outputFile, $quality);
   // imagedestroy($image);
}

提示:如果您要上传画布数据,请将数据放入< TEXTAREA>在发布之前 - 我使用了< INPUT>它截断了图像数据,直到我改为< TEXTAREA>。