我的网络服务器通过POST从iOS应用程序接收PNG图像文件。 我需要使用PHP将此PNG保存到硬盘上的文件中。
我收到的POST数据如下所示:
& image =< 89504e47 0d0a1a0a 0000000d 49484452 ...
如您所见,我将图像作为HEX数据接收。我试图将图像保存到磁盘,但生成的文件将无法打开。所有应用程序都说PNG已损坏。
我收到的数据似乎没问题,因为如果我只是将我的网络服务器日志文件中的POST数据放在我的Mac上使用我的HEX-Editor的文件中,PNG就能正常工作。
我的PHP代码:
$image = $_POST['image']);
$image = pack("H*", $image);
$filename = "image.png";
$f = fopen($filename,'wb');
fwrite($f, $image);
fclose($f);
答案 0 :(得分:1)
您应该使用$_FILE[]
方法在iOS上发送和检索您的PNG图像。查看本教程,解释如何生成表单并将其发送到PHP服务,这非常简单:
http://iphone.zcentric.com/2008/08/29/post-a-uiimage-to-the-web/
答案 1 :(得分:0)
我的方法是正确的。
我的PHP代码不起作用的原因是因为iOS应用程序提供的HEX-Data字符串 以某种方式格式化,因此包括空格和“<”和“>”字符。
删除后一切正常。