2017-10-14 9 views
0

apiにアップロードするファイルを送信する方法を教えてください。Guzz Clientがlaravelでapiサーバーにファイルを送信する方法

私たちはpostメソッドを持っています。これは、 nameとクエリのformDataの2つのパラメータを返します。そして、それは応答本体としてのリンクを与えます。 私はこの形式でがつがつ食うクライアント経由でファイルを送信するつもりです:

$file = $request->file('InputFile'); 
$file_path = $file->getPathname(); 
$response = $this->CX_Client->post('/file/upload?name='.$fileName, [ 
       'formData' => 
       [ 
        'file' => 
        [ 
          'name'  => 'InputFile', 
          'contents' => fopen($file_path, 'r'), 
          'filename' => $fileName 
        ] 

       ] 
      ]); 

しかし、これは動作しません。また、サーバは、このリクエストでそのパラメータを見つけることができません。私がどうかしましたか、まずいことでもありましたか?

答えて

0

あなたはmultipart代わりのformData

https://guzzle.readthedocs.io/en/latest/request-options.html#multipart

$response = $this->CX_Client->post('/file/upload?name='.$fileName, [ 
    'multipart' => [ 
     [ 
      'name'  => 'foo', 
      'contents' => 'data', 
      'headers' => ['X-Baz' => 'bar'] 
     ], 
     [ 
      'name'  => 'baz', 
      'contents' => fopen('/path/to/file', 'r') 
     ], 
     [ 
      'name'  => 'qux', 
      'contents' => fopen('/path/to/file', 'r'), 
      'filename' => 'custom_filename.txt' 
     ], 
    ] 
]); 
を使用する必要があります
関連する問題