저는 Guara with Laravel을 사용하는 데 매우 익숙합니다. 나는 현재 프론트 엔드와 별도의 REST API 간의 통신에만 사용하고있다.Laravel을 사용하여 API에서 단어 문서를 다운로드하는 방법
내 API에서 파일을 다운로드하려고하는데 어떻게해야할지 모르겠다. 파일에 대한 경로를 지정하고 직접 다운로드 할 수는 있지만 브라우저에서 스트리밍하거나 볼 수 있기를 원하므로 사용자는 단지 다운로드하는 대신 워드 문서를 볼 수 있습니다. > 다운로드 - 나는 사용하여 파일을 반환
$resp = $client->request('GET', env('API_BASE_URL').'/project/'.$id. '/download-report', [ 'headers' => [ 'Authorization' => 'Bearer '. session()->get('api_token') ] ]);
내 API를 백엔드에서 :
현재 I는 API 프로젝트 (API 호출을 수행하는 백엔드) 프런트 엔드 프로젝트에서 GET 요청을 전송하고 있습니다() 함수를 호출합니다.return response()->download($report->getPath());
누군가이 상황에 접근하는 가장 좋은 방법을 설명 할 수 있습니까?
두 가지 문제에 대한 해결책은 멋지거나 다운로드하거나 실제로 단어 문서의 내용을 보는 것입니다.
미리 감사드립니다.
답장을 보내 주셔서 감사합니다. 나는 현재 base64 데이터로 서비스하고 있으며 다른 쪽에서 다시 디코딩하고있다. 그런 다음 임시 파일에 저장하고 다운로드하십시오. 나는 이것이 당신이하는 일과 똑같은 일이라고 생각해. 그렇지? –
대부분 같지만 파일이 너무 큰 경우 메모리 제한을 초과하여 충돌 할 수 있습니다. 'sink' 옵션을 사용하면 파일에 바이트를 직접 (사용자가받을 때) 씁니다. 따라서 메모리 오버 플로우가 발생하지 않습니다. –
그래서 내가 디자인을 단순화하고'싱크대 '를 사용할 수 있도록, (백엔드와 프론트 엔드 사이에서) 앱 내부에서 base64 인코딩/디코딩을 건너 뛰는 조언이 필요하다. –