Изображение не загружается на сервер с REST API с использованием PHP cURL - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь загрузить изображение на сервер через REST API. Так что я использовал PHP cURL. Но я столкнулся с тем, что файл не загружается в конец сервера. Где я делаю не так? пожалуйста помоги. Ниже мой код

<?php

$resp = "";
//check is POST
if (isset($_POST['submit'])) {
    //check image upload, your want to check for other things too like: is it an image?
    if(isset($_FILES['file']['name'])){
        //make filename for new file
        $uploadfile = basename($_FILES['file']['name']);
        //move the upload
        if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
            $curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "http://example.com/",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "POST",
                CURLOPT_POSTFIELDS => array('file'=> dirname(__FILE__).'/'.$uploadfile),
                CURLOPT_HTTPHEADER => array(
                  "Content-Type: multipart/form-data; boundary=--------------------------516718006976498379520930"
                ),
            ));

            $resp = curl_exec($curl);
            curl_close($curl);
        }
    }
    else {
        $resp = "Upload a valid image file";
    }
}
?>

    <form runat="server" id="form" enctype="multipart/form-data" method="POST" action="">
        <div class="upload">
            <div id="upload-image">Upload Image</div>
            <input type="file" name="file" id="file">
        </div>submit" name="submit" id="main" value="Match Face"></input>
    </form>

Ответы [ 2 ]

1 голос
/ 21 января 2020

Согласно вашему коду, просто используйте приведенный ниже код. Я надеюсь, что это может работать.

$ch = curl_init('http://example.com/');
curl_setopt($ch, CURLOTP_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => new CURLFile(dirname(__FILE__).'/'.$uploadfile)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);

Дайте мне знать, если это работает.

0 голосов
/ 20 января 2020

Вы загружаете файл в свой локальный сервер и отправляете локальный адрес на сервере в файл сервера. Вы должны кодировать его не локально

<?php
  if(isset($_FILES['file']['name'])){
$picurl = $this->UploadPic($_FILES['file']['name']);
}
      publick function UploadPic($file){
//your uploader code here
//at the end you must return address
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...