我正在开发一个 Web 服务,使用 php 脚本将图像从 android 设备上传到服务器,其中 base64 字符串形式的图像数据使用 http post 请求从 android 设备发送到服务器。在服务器端,我使用以下代码解码图像数据并将图像保存到服务器:
$json = file_get_contents('php://input');
$obj = json_decode($json);
$base = $obj->image;
$ext = $obj->extension;
$folderPath = "./logo/";
$fileName = 'logo_'.$time.'.'.$ext;
$binary = bin2hex(base64_decode($base));
$data = pack("H" . strlen($binary), $binary);
$file = fopen($folderPath.$fileName, 'wb');
fwrite($file, $data);
fclose($file);
此代码将图像数据保存在服务器上,但图像数据与 android 应用程序发布的数据不同。即使上传文件的大小与原始文件不匹配。
那么任何人都可以帮助我,以便从 android 应用程序发送的图像数据正确解码并保存在与从 android 发送的图像相同的图像文件中吗?