Rumah > pembangunan bahagian belakang > tutorial php > Langkah untuk menggunakan rangka kerja Laravel untuk melaksanakan muat turun fail dan menyambung semula muat naik

Langkah untuk menggunakan rangka kerja Laravel untuk melaksanakan muat turun fail dan menyambung semula muat naik

WBOY
Lepaskan: 2023-08-01 13:26:01
asal
2533 orang telah melayarinya

Langkah untuk menggunakan rangka kerja Laravel untuk melaksanakan muat turun fail dan penyambungan semula titik putus

[Pengenalan latar belakang]

Dalam pembangunan aplikasi web, muat turun fail ialah keperluan fungsian biasa. Jika fail besar atau persekitaran rangkaian kurang baik, pengguna mungkin perlu menyambung semula muat turun supaya muat turun boleh disambung semula dari tempat ia terganggu. Artikel ini akan memperkenalkan cara untuk melaksanakan fungsi muat turun fail dan titik putus dengan menggunakan rangka kerja Laravel.

【Langkah 1: Buat laluan】

Pertama, kita perlu mencipta laluan untuk mengendalikan permintaan muat turun fail. Buka fail route/web.php dan tambahkan kod berikut:

Route::get('/download', 'DownloadController@download')->name('download');
Salin selepas log masuk

Di sini kami mentakrifkan laluan '/download' untuk permintaan GET dan arahkannya ke kaedah muat turun pengawal DownloadController.

【Langkah 2: Buat Pengawal】

Seterusnya, kita perlu mencipta pengawal untuk mengendalikan logik muat turun fail. Jalankan arahan berikut dalam terminal untuk menjana DownloadController:

php artisan make:controller DownloadController
Salin selepas log masuk

Kemudian cari dan buka fail DownloadController.php dalam direktori app/Http/Controllers, dan tambahkan kod berikut:

public function download()
{
    $filePath = public_path('storage/files/example_file.pdf');
    $fileName = 'example_file.pdf';

    return response()->download($filePath, $fileName);
}
Salin selepas log masuk

Kaedah muat turun di sini mula-mula mentakrifkan laluan fail $filePath dan Nama fail $fileName. Kemudian gunakan fungsi respons() Laravel, digabungkan dengan kaedah muat turun, untuk mengembalikan fail kepada pengguna untuk dimuat turun.

[Langkah 3: Laksanakan muat turun resume titik putus]

Secara lalai, muat turun fail Laravel tidak menyokong muat turun resume titik putus. Untuk melaksanakan fungsi ini, kita perlu melakukan beberapa konfigurasi tambahan. Buka fail DownloadController.php dan tambah kod berikut:

public function download()
{
    $filePath = public_path('storage/files/example_file.pdf');
    $fileName = 'example_file.pdf';

    $headers = [
        'Content-Type' => 'application/pdf',
    ];

    return response()->file($filePath, $headers);
}
Salin selepas log masuk

Kami kini menggunakan kaedah fail fungsi respons() untuk melaksanakan muat turun fail. Pada masa yang sama, kami juga menambah tatasusunan pengepala dan menetapkan pengepala 'Jenis-Kandungan' untuk memastikan fail dimuat turun dengan jenis MIME yang betul.

[Langkah 4: Muat turun fail menggunakan pemindahan resume titik putus]

Jika anda ingin melaksanakan fungsi muat turun resume titik putus, anda mungkin perlu menggunakan perpustakaan pihak ketiga untuk membantu kami menyelesaikannya. Dalam Laravel, kita boleh menggunakan perpustakaan GuzzleHttp untuk mencapai fungsi ini. Mula-mula laksanakan arahan berikut dalam terminal untuk memasang GuzzleHttp:

composer require guzzlehttp/guzzle
Salin selepas log masuk

Kemudian tambah kod berikut dalam fail DownloadController.php:

use GuzzleHttpClient;

public function download()
{
    $url = 'http://example.com/example_file.pdf';
    $fileName = 'example_file.pdf';

    $client = new Client(['sink' => public_path('storage/files/' . $fileName)]);
    $client->request('GET', $url, ['headers' => ['Range' => 'bytes=0-']]);

    return response()->download(public_path('storage/files/' . $fileName), $fileName);
}
Salin selepas log masuk

Dalam contoh ini, kami mula-mula menentukan URL dan nama fail fail. Seterusnya, kami mencipta contoh GuzzleHttpClient dan menentukan laluan simpan fail yang dimuat turun melalui pilihan 'sink'. Kemudian dengan memanggil kaedah permintaan, hantar permintaan dengan pengepala 'Julat' untuk mencapai penghantaran resume titik putus. Akhir sekali, kami mengembalikan fail yang dimuat turun kepada pengguna dengan menggunakan kaedah respons()->muat turun().

【Ringkasan】

Melalui langkah di atas, kami berjaya melaksanakan fungsi menggunakan rangka kerja Laravel untuk merealisasikan muat turun fail dan muat turun resume titik putus. Kami melaksanakan fungsi resume titik putus dengan mencipta laluan, menulis logik pengawal dan menggunakan perpustakaan GuzzleHttp. Saya harap artikel ini dapat membantu anda memahami cara melaksanakan muat turun fail dan penyambungan semula titik putus dalam Laravel.

Atas ialah kandungan terperinci Langkah untuk menggunakan rangka kerja Laravel untuk melaksanakan muat turun fail dan menyambung semula muat naik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan