laravel 下載功能不能用中文

PHPz
發布: 2023-05-29 14:23:38
原創
415 人瀏覽過

在使用 Laravel 開發時,我們可能會遇到下載功能無法正確處理中文檔案名稱的問題。這個問題主要是由於在檔案名稱中包含有中文字元所導致的。要解決這個問題,我們需要對檔案名稱進行 URL 編碼。

在 PHP 中,可以使用urlencode()函數來編碼檔案名稱。但是,在 Laravel 中我們可以使用內建的Str::slug()方法來完成這個任務。

Str::slug()方法可以將字串轉換為 URL 友善的 "slug" 格式。但是,我們可以選擇不傳入第二個參數,以保留原始字符,只進行 URL 編碼。

下面是一個範例程式碼:

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); }
登入後複製

在上面的程式碼中,我們使用了Str::slug()方法將檔案名稱進行了編碼,並將編碼後的字串作為第二個參數傳遞給download()方法。

透過這種方式,我們可以確保 Laravel 在處理下載檔案時能夠正確處理包含中文字元的檔案名稱。

以上是laravel 下載功能不能用中文的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!