Muat Turun Fail dalam Laravel Menggunakan Respons::muat turun
Dalam aplikasi Laravel, mungkin terdapat keperluan untuk mempunyai butang dalam paparan yang membenarkan pengguna memuat turun fail tanpa menavigasi ke paparan atau laluan yang berasingan. Walau bagaimanapun, terdapat beberapa isu biasa yang timbul apabila melaksanakan fungsi ini menggunakan Respons::muat turun.
Isu 1: Laluan Fail Tidak Wujud
Jika laluan ke fail tidak betul atau fail tidak wujud, Respons::download akan menimbulkan ralat. Untuk menyelesaikan masalah ini, pastikan laluan fail adalah tepat dan fail hadir di lokasi yang ditentukan.
Isu 2: Muat Turun Navigasi
Secara lalai, apabila muat turun butang diklik, ia akan menavigasi pengguna ke paparan atau laluan baharu. Untuk mengelakkan ini, fungsi muat turun mesti dikendalikan dalam paparan semasa.
Berikut ialah contoh yang diperbetulkan yang menangani kedua-dua isu:
<code class="php">public function getDownload() { // Full physical path to the PDF file $file = public_path() . "/download/info.pdf"; // Define the headers for the response $headers = [ 'Content-Type' => 'application/pdf', ]; // Return the response with the file and headers return response()->download($file, 'filename.pdf', $headers); }</code>
Kemas kini untuk Laravel 5
Dalam Laravel 5 dan ke atas, fasad Respons telah ditamatkan. Sebaliknya, gunakan kod berikut:
<code class="php">return response()->download($file, 'filename.pdf', $headers);</code>
Dengan pembetulan ini, butang muat turun akan memuat turun fail dengan betul pada paparan yang sama tanpa menyebabkan sebarang ralat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Muat Turun Fail dalam Laravel Menggunakan Respons::muat turun Tanpa Menavigasi ke Paparan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!