在php中的POST Curl请求到nodejs api不起作用

时间:2016-07-13 14:13:46

标签: php node.js post curl

我收到了另一位开发者的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> 

0 个答案:

没有答案