を使用して、このまったく同じフォルダーにあるphp Webサービスを使用して、base64でエンコードされた文字列から画像ファイルを書き込んでいます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));
2つ$path
は正しいです。
それにもかかわらず、ファイルは「正しく」作成されていますが(ssh
約 9kB のサイズで表示されます)、scp
画像ファイルの幅と高さが 0 に見える場合、つまり破損した画像ファイルであると推測されます。iOS アプリで XCode を使用してそれらを読み込もうとすると、次のエラーが発生します。
ImageIO: <ERROR> JPEG Corrupt JPEG data: 75 extraneous bytes before marker 0xdb
含まれるフォルダーには 777 のアクセス許可があり、親フォルダーからアクセスする php Web サービスと同じユーザー/グループであることに注意してください。残念ながらルートフォルダーの所有者を変更するまで、この方法は機能していました。
どうもありがとうございました。