Загрузите файл, используя Curl, и получите их методом Laravel - PullRequest
0 голосов
/ 11 сентября 2018

Я пытался загрузить файл в curl, используя конечную точку приложения laravel.

Ниже код находится на отдельном сервере.

$header = $this->getCurlHeader();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$this->url);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
// curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);   
$cfile = new \CURLFile($this->filePath . $this->csvFile,  'text/csv','text.csv');
//print_r($cfile);exit;
$postData = array('csv' => $cfile);         
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);                    
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$response = curl_exec($ch);
$hhtpCode = curl_getinfo($ch);
curl_close($ch);
//$this->dbg($hhtpCode);
$this->dbg(json_decode($response,1),1);

И получение конца в приложении laravel, размещенном на другом сервере.

public function insert(Request $request, $feed=''){
     //return response()->json(var_dump($request->all()));
     //return response()->json("here in insert");
     return response()->json($_FILES);
     echo "here";
     dd($_FILES);
}

Возвращает мне пустой ответ. Я могу проверить запрос curl, используя заголовки.

Любое предложение будет полезно. Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

пожалуйста, используйте метод curlfile для загрузки файлов.

if(isset($_FILES) && !empty($_FILES['identity_doc']))
            {

                    foreach($_FILES['identity_doc'] as $key => $file)
                    {
                        $data['document'.$i]= new CURLFile($_FILES['identity_doc']['tmp_name'][$i], $_FILES['identity_doc']['type'][$i],$_FILES['identity_doc']['name'][$i]);
                    }

            }
0 голосов
/ 11 сентября 2018

Вместо этого вы можете попробовать что-то подобное на исходном сервере:

$target_url = 'https://mywebsite.com'; // Write your URL here
$dir = '/var/www/html/storage/test.zip'; // full directory of the file

$cFile = curl_file_create($dir);
$post = array('file'=> $cFile); // Parameter to be sent

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=json_decode(curl_exec($ch));
curl_close ($ch);

С сервера назначения распечатать отправленный запрос.

public function insert(Request $request){
    dd($request->file);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...