如何正确地将某些python代码重新写入php
DrchronoAPI提供了python中用于上载医疗文档的示例代码 下面是python中的示例如何正确地将某些python代码重新写入php,python,php,Python,Php,DrchronoAPI提供了python中用于上载医疗文档的示例代码 下面是python中的示例 import datetime, json, requests headers = { 'Authorization': 'Bearer ACCESS_TOKEN', } data = { 'doctor': 1234, 'patient': 5678, 'description': 'Short document description here', 'd
import datetime, json, requests
headers = {
'Authorization': 'Bearer ACCESS_TOKEN',
}
data = {
'doctor': 1234,
'patient': 5678,
'description': 'Short document description here',
'date': '2014-02-24',
'metatags': json.dumps(['tag1', 'tag2']),
}
with open('/path/to/your.pdf', 'rb') as f:
files = {'document': f}
requests.post(
'https://drchrono.com/api/documents',
data=data, files=files, headers=headers,
)
根据Drchrono API,内容类型存在几个缺陷:
仅支持使用创建或更新嵌套对象以及创建多个对象
应用程序/json内容类型
仅使用表单/多部分内容类型支持文件
这是我的问题:
我正在尝试将上述代码重新写入php,以便按照此处的示例代码将文件上载到API
但这会带来错误
{"document":["The submitted data was not a file. Check the encoding type on the form."]}.
这是密码
form.php
<form method="post" action="document_upload.php" enctype="multipart/form-data">
<input type="text" name="doctor" value="2846">
<input type="text" name="patient" value="91189">
<input type="text" name="description" value="Patient Medical History Form">
<input type="text" name="date" value="2015-11-02">
<input type="file" name="document">
<input type="submit" name="submit" value="Upload">
$fsize = $_FILES['document']['size'];
$ftmp = $_FILES['document']['tmp_name'];
$fname= $_FILES["document"]["name"];
$tok='my-token-goes here';
$doctor =$_POST['doctor'];
$patient =$_POST['patient'];
$data_params= array(
'document' => $ftmp,
'doctor' => $doctor,
'patient' => $patient,
'date' => "2015-11-02",
'description' => "Patient Medical History File"
);
$url ='https://app.drchrono.com/api/documents';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
//curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer $tok", 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer $tok"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_params);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($ch);
echo $output;
事情解决了。问题是am使用过期的令牌已解决。问题是我使用的是过期的令牌