可能であれば、jsonでエンコードされたデータではなくsubmart/form-dataを使用して、$ _FILESに直接アクセスする必要があります。 、またはあなたがJSONを使用して保存しておきたいことができない場合、あなたはあなたのJSONの一環として、BASE64でエンコードされた画像を送信し、このように受信時に、それをデコードすることができます:
function base64ToImg($base64_string, $filename) {
$f = fopen($filename, "wb");
$data = explode(',', $base64_string);
fwrite($f, base64_decode($data[1]));
fclose($f);
return $filename;
}
base64ToImg($data["image"], "path/to/img");
EDIT
通常のファイルをサーバーに送信する方法は、enctype="multipart/form-data"
をhtml形式に設定することです。そう、あなたのフォームがサーバーに
<form name = 'formName' enctype="multipart/form-data">
<input name = 'data1' type = 'text'>
<input name = 'file1' type = 'file'>
</form>
のようになります、あなたは$ _FILES内の情報や$ _POSTを受け取ります:
<?php
$data1 = $_POST["data1"];
$file = $_FILES["file1"];
move_uploaded_file($file["tmp_name"], "path/to/img");
?>
あなたはそれがAndroidデバイスだと言ったので、私はしますあなたが開発しているものがアンドロイドアプリなら、フォームのものは助けにならないかもしれないと付け加えてください(多かれ少なかれ、これは私の最後のアンドロイドアプリ以来ずっと長い時間でした)。
httpClient = new DefaultHttpClient();
post = new HttpPost(yourUrl);
post.setHeader("Content-type", "multipart/form-data");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("data1", new StringBody(data1));
multipartEntity.addPart("file1", new FileBody(file1));
post.setEntity(multipartEntity);
response = httpClient.execute(httpPost);
イメージを生データに変換し、それをサーバーに渡します。サーバー側では、rawcodeを使用してイメージを作成します。 – Gowri