CURL Файл сообщения не передан params - PullRequest
0 голосов
/ 09 октября 2019

Я пытался подать в суд на QR-сообщение с конечной точки. При использовании почтальона значение возвращается правильно. Но если я попытался использовать PHP CURL, параметры не отправлялись с ошибкой: QRcode not present.

Здесь моя HTML-форма и PHP:

<form id="uploadForm" action="upload.php" method="post">
<div id="targetLayer">No Image</div>
<div id="uploadFormLayer">
<input name="qrcode" type="file" class="inputFile" /><br/>
<input type="submit" value="Submit" class="btnSubmit" />
</form>
$(document).ready(function (e) {
    $("#uploadForm").on('submit',(function(e) {
        e.preventDefault();
        $.ajax({
            url: "upload.php",
            type: "POST",
            data:  new FormData(this),
            contentType: false,
            cache: false,
            processData:false,
            success: function(data)
            {
            $("#targetLayer").html(data);
            },
            error: function() 
            {
            }           
       });
    }));
});

, а здесь PHP:

if(isset($_POST['qrcode'])){
    $filename = $_POST['qrcode'];
}
if(isset($filename)){ 
    echo $filename;
}
if(is_array($_FILES)) {
if(is_uploaded_file($_FILES['qrcode']['tmp_name'])) {
$sourcePath = $_FILES['qrcode']['tmp_name'];
$targetPath = "images/".$_FILES['qrcode']['name'];
if(move_uploaded_file($sourcePath,$targetPath)) {
    $gambar1 = array('qrcode' => $targetPath);

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

define("API_URL", "http://endpoint/img");
define("MULTIPART_BOUNDARY", "----WebKitFormBoundary7MA4YWxkTrZu0gW");

$api_headers = array(
        "Authorization: Basic ZGVuYTpzaWRhcmVqYTg0",
        "Accept: application/json; esl-api-version=11.10",
        "Content-Type: multipart/form-data; boundary=\"" . MULTIPART_BOUNDARY . "\"",
    );

$postdata = "--" . MULTIPART_BOUNDARY . "\r\n";
$postdata .= "Content-Disposition: form-data; name=\"file\"; filename=\"$targetPath\"\r\n\r\n";
$postdata .= file_get_contents("qr.png");
$postdata .= "\r\n\r\n";
$postdata .= "--" . MULTIPART_BOUNDARY . "\r\n";
$postdata .= "Content-Disposition: form-data; name=\"qrcode\"\r\n\r\n";
$postdata .= json_encode($build);
$postdata .= "\r\n\r\n";
$postdata .= "--" . MULTIPART_BOUNDARY . "--\r\n";

$curl = curl_init(API_URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST          , true);
curl_setopt($curl, CURLOPT_POSTFIELDS    , $postdata);
curl_setopt($curl, CURLOPT_HTTPHEADER    , $api_headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($curl);
$response = curl_multi_getcontent($curl);
curl_close($curl);

echo mb_convert_encoding(print_r(json_decode($response, true), true), 'CP932', 'UTF-8');

Я действительно ценю, если кто-то знает о моей проблеме, я не знаю, почему QR-код params не отправляется на сервер, поскольку я действительно новичок в использовании CURL.

Я использую PHPверсия 7 для этого, также я попытался скопировать и вставить код, сгенерированный Почтальоном, но все еще возвращает ту же ошибку QR code not resent

Спасибо

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