Rumah >rangka kerja php >Laravel >Fungsi muat turun Laravel tidak boleh digunakan dalam bahasa Cina
Apabila membangun dengan Laravel, kami mungkin menghadapi masalah bahawa fungsi muat turun tidak dapat mengendalikan nama fail Cina dengan betul. Masalah ini disebabkan terutamanya oleh kemasukan aksara Cina dalam nama fail. Untuk menyelesaikan masalah ini kita perlu mengekod URL nama fail.
Dalam PHP, anda boleh menggunakan fungsi urlencode()
untuk mengekod nama fail. Walau bagaimanapun, dalam Laravel kita boleh menggunakan kaedah Str::slug()
terbina dalam untuk menyelesaikan tugas ini. Kaedah
Str::slug()
menukar rentetan kepada format "slug" mesra URL. Walau bagaimanapun, kami boleh memilih untuk tidak memasukkan parameter kedua untuk mengekalkan aksara asal dan hanya melakukan pengekodan URL.
Berikut ialah contoh kod:
public function downloadFile($filename) { $fullPath = storage_path('app/download/' . $filename); $headers = [ 'Content-Type' => 'application/octet-stream', ]; $escapedFilename = Str::slug($filename, ''); return response()->download($fullPath, $escapedFilename, $headers); }
Dalam kod di atas, kami menggunakan kaedah Str::slug()
untuk mengekod nama fail dan menggunakan rentetan yang dikodkan sebagai Parameter kedua dihantar ke download()
kaedah.
Dengan cara ini, kami boleh memastikan Laravel boleh mengendalikan nama fail yang mengandungi aksara Cina dengan betul semasa memproses fail yang dimuat turun.
Atas ialah kandungan terperinci Fungsi muat turun Laravel tidak boleh digunakan dalam bahasa Cina. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!