2017-10-14 12 views
0

api에서 업로드 할 파일을 어떻게 보내야합니까?Guzzle 클라이언트가 laravel에서 api 서버로 파일을 보내려면 어떻게해야합니까?

api 서버에는 두 개의 매개 변수 ( )와 name (질문 : formData)이 있습니다. 그러면 응답 본문으로 링크가 제공됩니다.

$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 대신

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' 
     ], 
    ] 
]); 
formData의를 사용해야합니다