我创建了这段代码来从 android 应用程序中获取数据。在获取 json 数据后,我对它们进行解码,然后我获取作为图像的 base 64 代码的关键变量和作为图像名称的 ori_name 变量。之后,我在服务器端从 base 64 代码创建图像文件并将文件存储在服务器中。如果图像存储在服务器中,那么我将图像名称和图像路径存储在一个数据库中。当我使用 android 应用程序执行此代码时,它仅在 android 端返回 nil。这里有任何获取数据的解决方案吗?请注意,android 应用程序是由使用我创建的此服务的朋友开发的。当他使用它时,他得到了 nil 值。请帮我解决这个问题。
<?php
//process client request(via URL)
header("content-Type:application/json");
$data=$_REQUEST['jdata'];//request json data
$imgdata=json_decode($data);//decode json data
$basecode=$imgdata->{'key'};//fetch base64 code of image
$imgname=$imgdata->{'ori_name'};//fetch image name
$response=get_url($basecode,$imgname);//cal function for store image at server
return deliver_response($response);
function deliver_response($status)
{
header("HTTP/1.1");
$response['status']=$status;
$json_response=json_encode($response);
return $json_response;//return json response to android app
}
function get_url($basecode,$imgnm)
{
$decoded= base64_decode($basecode);//convert base 64 code to string format
$location=$_SERVER['HTTP_HOST']."/Clients/krishinternational/MobileService/images/".$imgnm;
$output_file="../images/".$imgnm;//define output file location
$ifp = fopen($output_file, "wb"); //create file
$rs=fwrite($ifp, $decoded); //write image in file
if($rs!=False)//check weather file is written or not
{
fclose($ifp);
$conn =mysqli_connect('host','user','password','db_name');//creating database connection
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$query="insert into tblimage values('".$imgnm."','".$location."')";//query to store image path in database
if ($conn->query($query) === TRUE)
{
//echo "New record created successfully";
mysqli_close($conn);
return True;//if successfully inserted then return true
}
else
{
return False;//if not succeed then return false
}
}
else
{
return False;
}
}
?>