Я пытался подать в суд на 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
Спасибо