2017-07-06 18 views
0

ファイルをアップロードするためのAPIを作成しています。しかし、Webルートファイルからアップロードすると動作しますが、apiルートファイルからアップロードすると動作しません。laravel apiルート経由でファイルをアップロードする方法

axios.defaults.headers.put['Content-Type'] = 'multipart/form-data';

axios.put('/api/pikirler', formData);

私はそれを変更した場合:

axios.defaults.headers.post['Content-Type'] = 'multipart/form-data';

axios.post('/upload', formData);

それは正常に動作します。しかし私はAPIルートでそれを使用したい。前もって感謝します。

答えて

2

コントローラでguzzleパッケージを使用できます。以下は、グズルでファイルをアップロードするコードです。

$options = [ 
     'multipart' => [ 
     [ 
      'name' => 'user_key' 
     ], 
     [ 
      'name' => 'file_names', 
      'contents' => '[]' 
     ], 
     [ 
      'name' => 'file', 
      'contents' => file_get_contents($filePath), 
      'filename' => $fileName, 
      'headers' => [ 
      'Content-Type' => 'application/octet-stream' 
      ] 
     ] 
     ] 
    ]; 

     $httpClient = new GuzzleClient(); 
     $response = $httpClient->request("POST", "someApiUrl", $options); 

以下はドキュメントです。 http://docs.guzzlephp.org/en/latest/overview.html

+0

ヘッダーを変更してAxiosでアップロードすることはできませんか? –

+0

私は斧を試しませんでした。 @AzatAkmyradov。私は通常、グズルを使用します。 –

+0

ありがとう、私はそれを試してみましょう。しかし、もし私がAxiosでそれをする方法を見つけ出すなら、それは良いでしょう –

関連する問題