我收到了另一位开发者的api列表,我不再接触所有api调用,但是这个。它是一个使用CURL发送图像和/或消息的POST请求
这是发给我的Curl请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://url.com/api/projects/id/updates?limit=limit&offset=offset");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, --__BOUNDARY__
Content-Disposition: form-data; name=\"message\"
foo bar2
--__BOUNDARY__
Content-Disposition: form-data; name=\"image\"; filename=\"image.jpg\"
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5C4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAABAAEDASIA
AhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/8QAFAEB
AAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AL+AD//Z
--__BOUNDARY__--);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: multipart/form-data; boundary=__BOUNDARY__"
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
这是我试图修复此问题但没有成功
if (isset($_POST['btnUpload'])){
$url = "https://url.com/api/projects/updates";
$filename = $_FILES['file']['name'];
$filedata = $_FILES['file']['tmp_name'];
$filesize = $_FILES['file']['size'];
$msg = $_POST['message'];
if ($filedata != ''){
$headers = array( "Content-Type:multipart/form-data",
"Authorization: Bearer {$token}",
"Access-Token: xmxxmcvcxdd"
);
$postfields = array("filedata" => "@$filedata", "filename" => $filename, "message" => $msg);
$ch = curl_init();
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => true,
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $postfields,
CURLOPT_INFILESIZE => $filesize,
CURLOPT_RETURNTRANSFER => true
); // cURL options
curl_setopt_array($ch, $options);
$drd = curl_exec($ch);
if(!curl_errno($ch)){
$info = curl_getinfo($ch);
if ($info['http_code'] == 200)
$errmsg = "File uploaded successfully";
} else {
$errmsg = curl_error($ch);
}
curl_close($ch);
}else{
$errmsg = "Please select the file";
}
}
HTML POST表单
<form action="" method="post" name="frmUpload" enctype="multipart/form-data">
<tr>
<td>Upload</td>
<td><input name="file" type="file" id="file"/></td>
<td><input name="message" type="text" /></td>
</tr>
<tr>
<td><input name="btnUpload" type="submit" value="Upload" /></td>
</tr>
</form>