AndroidからlocalhostサーバーにBase64形式の文字列ファイルとして画像を送信しています。 Google ChromeのPostman拡張機能でテストしています。ここでPHPでbase64でエンコードされた画像文字列を受け取ってファイルに書き込む
が私のコードです:
<?php
header('Content-type : bitmap; charset=utf-8');
if(isset($_POST["encoded_string"])){
$encoded_string = $_POST["encoded_string"];
$image_name = $_POST["image_name"];
$decoded_string = base64_decode($encoded_string);
$path = 'android_connect/images/'.$image_name;
$file = fopen($path, 'wb');
$is_written = fwrite($file, $decoded_string);
fclose($file);
if($is_written > 0) {
$connection = mysqli_connect('localhost', 'root', 'rifat20081995','phpmyadmin');
$query = "INSERT INTO Pictures(Name,Path) values('$image_name','$path');";
$result = mysqli_query($connection, $query) ;
if($result){
echo "success";
}else{
echo "failed";
}
mysqli_close($connection);
}
else
{
echo "file not written";
}
}
?>
私はこのようなコードを使用していた多くの例を見ましたが、私にとっては、「ファイルが書き込まれていない」毎回言います。
私はUbuntuにいます。私は書き込み中にいくつかの許可の問題があると思います。しかし、私はすべての権限を設定しましたが、何も変わりませんでした。
は、実際にデータを取得するあなたのポストですか?あなたの '$ encoded_string'を返し、送信しているデータがサーバが受信しているのと同じデータであるかどうか確認してください。次に、ファイルがサーバーに書き込まれているかどうかをデバッグしてみてください。 – Pazuzu156
はいBase64のフォーマットされた文字列を取得し、文字列をデコードし、サーバーに画像を書き込んでいます... –
http応答ではどうなりますか? – Clay