0

を使用して、このまったく同じフォルダーにある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 サービスと同じユーザー/グループであることに注意してください。残念ながらルートフォルダーの所有者を変更するまで、この方法は機能していました。

どうもありがとうございました。

4

0 に答える 0