Maison > cadre php > Laravel > La fonction de téléchargement de Laravel ne peut pas être utilisée en chinois

La fonction de téléchargement de Laravel ne peut pas être utilisée en chinois

PHPz
Libérer: 2023-05-29 14:23:38
original
523 Les gens l'ont consulté

Lors du développement avec Laravel, nous pouvons rencontrer le problème que la fonction de téléchargement ne peut pas gérer correctement les noms de fichiers chinois. Ce problème est principalement dû à l'inclusion de caractères chinois dans le nom du fichier. Pour résoudre ce problème, nous devons encoder l'URL du nom de fichier.

En PHP, vous pouvez utiliser la fonction urlencode() pour encoder les noms de fichiers. Cependant, dans Laravel, nous pouvons utiliser la méthode intégrée Str::slug() pour accomplir cette tâche. La méthode Str::slug() peut convertir une chaîne au format "slug" convivial pour les URL. Cependant, nous pouvons choisir de ne pas passer le deuxième paramètre pour conserver les caractères d'origine et effectuer uniquement l'encodage d'URL. 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);
}
Copier après la connexion

在上面的代码中,我们使用了 Str::slug() 方法将文件名进行了编码,并将编码后的字符串作为第二个参数传递给 download()

Ce qui suit est un exemple de code :

rrreee

Dans le code ci-dessus, nous utilisons la méthode Str::slug() pour encoder le nom du fichier et utiliser la chaîne encodée lorsque les deux paramètres sont transmis à la méthode download(). 🎜🎜De cette façon, nous pouvons garantir que Laravel peut gérer correctement les noms de fichiers contenant des caractères chinois lors du traitement des fichiers téléchargés. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal