Memuat Turun Fail dalam Laravel Menggunakan Respons::muat turun
Dalam Laravel, kaedah Respons::download membenarkan pengguna memuat turun fail dari pelayan . Berikut ialah penyelesaian kepada isu yang dihadapi semasa melaksanakan fungsi ini:
1. Isu Laluan Fail:
Ralat "Fail...not exist" menunjukkan laluan fail yang salah. Untuk menyelesaikan masalah ini, gunakan pembantu public_path() untuk menentukan laluan fizikal penuh ke fail:
$file= public_path(). "/download/info.pdf";
2. Menghalang Navigasi Halaman:
Untuk mengelak daripada menavigasi ke paparan atau laluan lain, gunakan permintaan Ajax untuk mengendalikan muat turun fail. Begini caranya:
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!' ]); }
Kemas kini untuk Laravel v5.0 :
Seperti yang dinyatakan dalam penyelesaian, anda boleh menggunakan kaedah respons() dalam Laravel v5.0 sebaliknya daripada fasad Respons. Struktur pengepala juga sedikit berbeza, seperti yang ditunjukkan di bawah:
$headers = [ 'Content-Type' => 'application/pdf', ]; return response()->download($file, 'filename.pdf', $headers);
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail dalam Laravel Menggunakan Respons:: muat turun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!