Response::download를 사용하여 Laravel에서 파일 다운로드
많은 개발자는 사용자가 탐색 없이 보기 내에서 파일을 다운로드하도록 허용하려고 할 때 문제에 직면합니다. . 이 문서에서는 일반적인 문제를 다루고 해결 방법을 제공합니다.
문제:
파일 경로 "/public/download/info.pdf"가 존재하지 않으며 다운로드 버튼을 사용하여 다음을 탐색할 수 있습니다. 다운로드를 시작하는 대신 사용자에게 다른 보기를 제공합니다.
가능한 해결 방법:
1. 올바른 파일 경로:
첫 번째 문제는 잘못된 파일 경로에서 발생합니다. "./download/info.pdf" 대신 전체 실제 경로를 지정해야 합니다:
<code class="php">$file = public_path(). "/download/info.pdf";</code>
2. 탐색 방지:
사용자 탐색을 방지하려면 버튼을 다음으로 교체하세요.
<code class="html"><a href="#" onclick="downloadFile();" class="btn btn-large pull-right"><i class="icon-download-alt"></i> Download Brochure</a></code>
3. JavaScript 함수:
다운로드를 처리할 JavaScript 함수 추가:
<code class="javascript">function downloadFile() { var url = "/download"; window.location.href = url; return false; }</code>
4. 업데이트된 컨트롤러:
적절한 헤더가 포함된 파일을 반환하도록 컨트롤러를 수정합니다.
<code class="php">public function getDownload() { $headers = ['Content-Type' => 'application/pdf']; return response()->download($file, 'filename.pdf', $headers); }</code>
Laravel 5 이상에 대한 참고 사항:
버전 5 이상에서는 Response::download() 대신 response()->download()를 사용하세요. 또한 헤더 배열은 연관 배열로 형식을 지정해야 합니다.
<code class="php">$headers = [ 'Content-Type' => 'application/pdf', ];</code>
이러한 업데이트를 구현하면 다운로드 버튼을 누르면 사용자가 다른 곳으로 이동하지 않고도 동일한 보기에서 파일 다운로드가 시작됩니다.
위 내용은 탐색 없이 Laravel의 뷰에서 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!