base64文字列に変換された画像を受け取るAPIがあります。私たちのモバイルアプリケーションは、変換プロセス(base64)中に多すぎるRAMを消費するため、マルチパートとしてイメージをアップロードする必要があります。私はモバイル部分を開発しましたが、私はPHP APIに悩まされています。ボレーはマルチパートアップロードをサポートしていなかったので、ボレーからレトロフィットに切り替えました。PHPでマルチリクエストを受け取る方法
マルチパート画像のアップロードを受け取るスクリプトで何を変更する必要がありますか?
<?php
//header('Content-Type : bitmap; charset=utf-8');
//header('Content-Type: application/json');
if (isset($_POST["encoded_string"])) {
//encoded_string -> base64 string sent from mobile phone
$encoded_string = $_POST["encoded_string"];
$image_name = $_POST["image_name"];
$decoded_string = base64_decode($encoded_string);
$path = 'images/' . $image_name;
if (!file_exists('images')) {
mkdir('images', 0777, true);
}
$file = fopen($path, 'wb');
$is_written = fwrite($file, $decoded_string);
fclose($file);
if ($is_written > 0) {
$connection = mysqli_connect('localhost', 'root', '', 'test');
if ($connection) {
$query = "INSERT INTO photos(name,path) values('$image_name','$path');";
$result = mysqli_query($connection, $query);
if ($result) {
echo json_encode(array(
"response" => "Success! Image is succefully uploaded!.",
"result" => "success"
));
} else {
echo json_encode(array(
"response" => "Error! Image is not uploaded.",
"result" => "error"
));
}
mysqli_close($connection);
} else {
echo json_encode(array(
"response" => "Error! No database connection!",
"result" => "error"
));
}
}
} else {
echo json_encode(array(
"response" => "Error! Please insert data!",
"result" => "error"
));
}
?>
私はアップロードの写真のためのカスタムメソッド[here](http://stackoverflow.com/questions/36513174/android-multipart-image-upload-with-httpconnectionparams-deprecated-in-new-api/36513504#36513504)を持っています。それはJsonによって働くことが多分あなたを助けるかもしれません。 –
スクリプトからデータベースコードを削除してください。それはイメージを受け取ることとは何の関係もありません。受信に集中する。スクリプトを小さくしてください。 – greenapps