Я столкнулся с очень запутанной проблемой, когда мое приложение Iphone отправляет данные изображения в виде строки в формате NSDATA с использованием XML-RPC на веб-сервер. Я также веду журнал XML-RPC для сохранения каждого запроса, поступающего с iPhone на веб-сервер. Моя проблема заключается в том, что когда я получил данные изображения из xml-rpc и сохранил их в фактический файл изображения, изображение повреждено. Я получаю следующий запрос XML-RPC от iphone.
<?xml version="1.0"?><methodCall><methodName>ipad.dataSync</methodName>
<params><param>
<value><string><ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966
00004d4d 002a0000 00080002 01120003 00000001 00010000 >.....continued data of image>
</string></value>
</param><params>
</methodCall>
Когда я сохраняю данные изображения в реальном файле, используя следующий код, изображение искажается.
$image_name = "my_image_name.png";
$image_bits_data = "<ffd8ffe0 00104a46 49460001.....>"; //long hexadecimal formatted string of image from iphone
$fp = @fopen( $image_name, 'w+' );
if($fp)
{
if (fwrite($fp, $image_bits_data) === FALSE)
{
echo "Cannot write to file ($image_name)";
exit;
}
else
{
fclose( $fp );
clearstatcache();
echo "File is successfully uploaded.";
}
}
else
{
echo "File can not be created.Please check the path and directory
permission";
}
Изображение имеет соответствующий размер, например, 50 КБ и т. Д., Но когда я открываю изображение, оно повреждается и изображение не отображается в Picture Viewer или браузере. Пожалуйста, если у кого-нибудь есть подсказка или решение по этому вопросу, поделитесь им. БЛАГОДАРЯ