php публикует данные с помощью curl - PullRequest
0 голосов
/ 30 мая 2018

Когда я отправляю данные с помощью ajax и отправляю в post.php по curl, тогда переменная $_FILES становится пустой и получает данные в переменной $_POST.Когда я печатаю $_POST var, получаю следующие данные на post.php.

   [temp_upload_file] => @/tmp/php6OHgQc;filename=Penguins.jpg;type=image/jpeg

, когда я печатаю "$ _FILES" var, получая пустые данные на post.php

Array
(
)  

Code:

$url = "post.php";
$ch = curl_init($url);
// send a file
curl_setopt($ch, CURLOPT_POST, true);

$data = array('temp_upload_file' =>'@'.$_FILES['uploadfile']['tmp_name'].';filename='.$_FILES['uploadfile']['name'].';type='. $_FILES['uploadfile']['type']);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// output the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: multipart/form-data'));
echo curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

Что я здесь не так делаю ??

Заранее спасибо

1 Ответ

0 голосов
/ 30 мая 2018

Для php5.5 + есть новая функция curl_file_create (), которую вам нужно использовать, формат @ устарел.

Попробуйте использовать следующий код:

$url = "post.php";
$tmpfile = $_FILES['temp_upload_file']['tmp_name'];
$filename = basename($_FILES['temp_upload_file']['name']);

$ch = curl_init($url);
// send a file
curl_setopt($ch, CURLOPT_POST, true);

$data = array(
    'uploaded_file' => curl_file_create($tmpfile, $_FILES['uploadfile']['type'], $filename)
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// output the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: multipart/form-data'));
echo curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...