【发布时间】:2017-03-03 21:25:34
【问题描述】:
我想将 json 数据转换为 php 中的字符串。这是我的 json 数据
{
"": [{
"description": "hello, this is description speaking"
}, {
"fieldName": "myfile",
"originalFilename": "image.png",
"path": "/var/folders/rq/q_m4_21j3lqf1lw48fqttx_80000gn/T/ttzVoNPfBxMMirec1tJsnrd2.png",
"headers": "[Object]",
"size": "82745"
}]
}
我想在我的 php 文件中打印“你好,这是描述”,并且我想上传我的文件。我的php代码如下,请更正。
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$json = file_get_contents("php://input");
$json_obj = json_decode($json);
echo $json_obj;
echo $_POST['description'];
$name = $_FILES['myfile']['name'];
$tmp_name = $_FILES['myfile']['tmp_name'];
$error = $_FILES['myfile']['error'];
if (!empty($name)) {
$location = 'uploads/';
if (move_uploaded_file($tmp_name, $location.$name)){
echo 'Uploaded';
}
} else {
echo 'please choose a file';
}
} else {
echo "error 2";
}
在此代码中,错误是未定义索引:D:\xampp\htdocs\work 中的文件。 如果没有文件上传代码,它什么也不会显示。
【问题讨论】:
-
您的 JSON 似乎无效。尝试先验证它jsonlint.com,并在它有效后对其进行调试。
-
代替 echo $json_obj 来学习它的内容,执行以下操作: echo ( "
" ); print_r($json_obj);回声(“
”);使用它,您将能够轻松查看您想要获取的项目。 - 例如:$json_obj->myfile(或者它可能是 $json_obj['myfile'],我现在忘记了) -
试试
json_decode($json,true); -
我已经更正了我的 json,现在告诉我获取值的 php 代码。
-
您必须再次查看有关
json_decode的PHP 手册。您不必使用第三方工具来检查 JSON 编码字符串的有效性,因为如果编码不正确,json_decode()将返回null。json_decode()的第二个参数,你没用过,会判断json_decode的返回值是关联数组还是对象