Laravel: я получил файл песни «form-data» от одного из API, затем мне нужно переслать этот файл в другой API. Есть идея переслать?

#laravel

#laravel

Вопрос:

Контроллер Laravel project 1, как переслать файл в API-2

v

 Input::file('songFile')->move("/tmp", $newname);
  

я использовал эту функцию и сохранил расположение tmp, тогда как использовать этот файл расположения tmp и переслать?

Комментарии:

1. вызовите этот api с помощью guzzle

2. да, используйте GuzzleHttp Client; @bhucho

3. Вы просили идею, я дал идею, я предполагаю, что вы не просили решения

4. Я использую guzzle. Но я спросил, как перенести файл из одного api в другой api. Это мой вопрос? @bhucho

5. Когда я нажал на первый api, файл находился в хранилище «tmp», тогда как опубликовать второй api, который содержит этот файл? @bhucho

Ответ №1:

Чтобы опубликовать файл в конечной точке API, вы можете следовать следующему коду.

 try{
$path = 'var/www/html/myproject/public/file.txt';//your file path
if (!empty($path) amp;amp; file_exists($path)) {

   $guzzleResponse = $client->post($api_url, [
       'multipart' => [
                        [
                            'name' => 'file',// it is the name as specfied in the payload of api_url
                            'contents' => fopen($path, 'r')// or you can use file_get_contents()
                        ]
                    ],
                    'headers' => $headers
       ]);
}
if ($guzzleResponse->getStatusCode() == 200) {
   $response = json_decode($guzzleResponse->getBody());// whatever you want to do with response
}
}catch(RequestException $e){
    return $e;  //You can also handle specific status codes here using eg $e->getResponse()->getStatusCode() == '400'
}
  

Также заголовки $ могут быть такими

 [
     'Accept'                => 'application/json',
     'Authorization'         => 'Bearer '. $userToken,
]
  

Смотрите больше информации в Guzzle

Комментарии:

1. Спасибо за ваш ответ. Он работает нормально. Я использовал файл «test.mp3». Но, наконец, полученный формат файла неверен. Похоже, что «phpTVaLQf». Размер файла правильный. @bhucho

2. Есть ли у вас какое-либо решение.

3. вы передаете только свой mp3-файл или есть и другое содержимое

4. что вы изменили? Я собирался предложить about sink (если бы вы передавали только свой mp3-файл) docs.guzzlephp.org/en/latest/request-options.html#sink