2016-10-19 4 views
5

클라이언트 쪽에서 이미지 또는 파일을 저장하기 위해 API (Lumen에서 생성)가 있습니다.Laravel : 이미지 또는 파일을 API로 보내는 방법

이 내 API 코드

if ($request->hasFile('image')) { 
    $image = $request->file('image'); 

    $fileName = $image->getClientOriginalName(); 
    $destinationPath = base_path() . '/public/uploads/images/product/' . $fileName; 
    $image->move($destinationPath, $fileName); 

    $attributes['image'] = $fileName; 
} 

이미 우체부의 API를 시도하고, 모든 것이 잘 이미지가 성공적으로 업로드했다.

클라이언트 측 (API 호출)에서 이미지를 보내고 API 프로젝트에 이미지를 저장하는 가장 좋은 방법은 무엇입니까? 내 코드가 작동하지 않기 때문에 입니다.

클라이언트 측에서 이미지 파일을 수신 한 다음 API를 호출하려고하면이 코드가 작성됩니다.

if ($request->hasFile('image')) { 
    $params['image'] = $request->file('image'); 
} 

$data['results'] = callAPI($method, $uri, $params); 
+0

는 이미지를 저장할 위치 :

대안은 원격 URL 소스를 보내이 같은 API에서 그것을 다운로드하는 것입니다? –

+0

예, 이미지를 API로 보내고 API 공용 폴더 –

+0

에 저장하십시오. 한 옵션은 파일을 64로 인코딩하고 POST를 통해 전송합니다. 하지만 '서버'코드 소스를 변경해야합니다 – cmnardi

답변

1

사실 양식에서 게시물을 보내지 않으면 처리 할 수 ​​없습니다.

if ($request->has('imageUrl')) { 

    $imgUrl = $request->get('imageUrl'); 
    $fileName = array_pop(explode(DIRECTORY_SEPARATOR, $imgUrl)); 
    $image = file_get_contents($imgUrl); 

    $destinationPath = base_path() . '/public/uploads/images/product/' . $fileName; 

    file_put_contents($destinationPath, $image); 
    $attributes['image'] = $fileName; 
} 
관련 문제