Response::download를 사용하여 Laravel에서 파일 다운로드
Laravel에서 Response::download 메소드를 사용하면 사용자가 서버에서 파일을 다운로드할 수 있습니다. . 이 기능을 구현할 때 직면하는 문제에 대한 해결책은 다음과 같습니다.
1. 파일 경로 문제:
"파일이...존재하지 않음" 오류는 잘못된 파일 경로를 나타냅니다. 이 문제를 해결하려면 public_path() 도우미를 사용하여 파일의 전체 실제 경로를 지정하세요.
$file= public_path(). "/download/info.pdf";
2. 페이지 탐색 방지:
다른 보기나 경로로 이동하지 않으려면 Ajax 요청을 사용하여 파일 다운로드를 처리하세요. 방법은 다음과 같습니다.
ViewController:
<button class="btn btn-large pull-right" data-href="/download" id="downloadBtn"> <i class="icon-download-alt"></i> Download Brochure </button>
JavaScript:
$(document).ready(function() { $('#downloadBtn').click(function() { $.ajax({ url: $(this).data('href'), success: function() { alert('File downloaded successfully!'); }, error: function() { alert('Error downloading file!'); } }); }); });
Controller:
public function getDownload() { // Same code as before, but now it returns a JSON response return response()->json([ 'success' => true, 'message' => 'File downloaded successfully!' ]); }
Laravel v5.0 업데이트 :
솔루션에서 지적했듯이 Laravel v5.0에서는 response() 메서드를 대신 사용할 수 있습니다. Response 파사드의 모습입니다. 헤더 구조도 아래와 같이 약간 다릅니다.
$headers = [ 'Content-Type' => 'application/pdf', ]; return response()->download($file, 'filename.pdf', $headers);
위 내용은 Response::download를 사용하여 Laravel에서 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!