我正在使用file_put_contents()
. 这是写作部分[PHP]:
$data = base64_decode( $datastring );
$res = file_put_contents( $path, $data );
$resultf = array();
$resultf["request"] = "setpic";
$resultf["result"] = strval($res);
$this->sendResponse(200, json_encode($resultf));
阅读部分遵循[PHP]:
$datastring = file_get_contents( $path );
$data = base64_encode( $datastring );
$resultf["request"] = "getpic";
$result0 = array();
$result0["path"] = $path;
$result0["data"] = $data;
$resultf["result"] = $result0;
$this->sendResponse(200, json_encode($resultf));
两者$path
都是正确的。
尽管如此,尽管文件是“正确”创建的(我可以看到它们ssh
的大小约为 9kB),但如果我scp
认为图像文件的宽度和高度为 0,即我认为是损坏的图像文件。如果我尝试在我的 iOS 应用程序中使用 XCode 加载它们,我会收到以下错误:
ImageIO: <ERROR> JPEG Corrupt JPEG data: 75 extraneous bytes before marker 0xdb
请注意,包含文件夹具有 777 权限,与从父文件夹访问它们的 php web 服务相同的用户/组。这种方法一直有效,直到我不幸地更改了根文件夹的所有者。
非常感谢你的帮助。