0

我创建了这段代码来从 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;
       }
    }
    ?>
4

1 回答 1

0

谢谢 Indra,我得到了 Rest Client 的结果测试。错误是我从 android 应用程序请求 json 数据,但实际上我必须使用 file_get_contents。

$input=file_get_contents("php://input");

谢谢因陀罗

于 2014-12-29T03:06:43.967 回答