Maison > Java > javaDidacticiel > Que faire si le nom du fichier de téléchargement Java est tronqué

Que faire si le nom du fichier de téléchargement Java est tronqué

下次还敢
Libérer: 2024-04-02 02:33:24
original
1020 Les gens l'ont consulté

Résoudre les noms de fichiers de téléchargement Java tronqués : 1. Définissez l'en-tête de la requête pour spécifier l'encodage ; 2. Utilisez URLDecoder pour décoder ; 3. Obtenez le nom du fichier d'origine pour éviter les problèmes d'encodage ; 4. Utilisez des bibliothèques tierces (Apache Commons IO ; , JCodec); 5. Contacter les paramètres d'encodage côté serveur.

Que faire si le nom du fichier de téléchargement Java est tronqué

Java Download File Name Garbled Solution

Lors du téléchargement d'un fichier à partir d'une URL à l'aide de Java, le nom du fichier peut être tronqué en raison d'un encodage de fichier incorrect. Selon la situation spécifique, il existe plusieurs solutions :

1. Définissez le format d'encodage correct

URLConnection connection = url.openConnection();
connection.setRequestProperty("Accept-Charset", "UTF-8");
Copier après la connexion

Spécifiez l'encodage correct des caractères du fichier renvoyé par le serveur en définissant le paramètre Accept-Charset. en-tête de requête. Accept-Charset 请求头,指定服务器返回文件的正确字符编码。

2. 使用 URLDecoder 解码

String fileName = URLEncoder.decode(response.getFileName(), "UTF-8");
Copier après la connexion

使用 URLDecoder.decode() 函数将文件名解码成 UTF-8 格式。

3. 根据 HTTP 头获取原始文件名

String fileName = response.getHeaderField("Content-Disposition");
if (fileName != null) {
    fileName = fileName.substring(fileName.indexOf("filename=") + 9);
    fileName = fileName.substring(0, fileName.length() - 1);
}
Copier après la connexion

从 HTTP 头中提取原始文件名,避免编码问题。

4. 使用第三方库

一些第三方库提供了便捷的方法来处理乱码文件名,例如:

  • Apache Commons IO: FileUtils.writeByteArrayToFile() 函数自动判断文件名编码并进行解码。
  • JCodec: FileGrab() 函数提供 getFile()
2. Utilisez URLDecoder pour décoder

rrreeeUtilisez la fonction URLDecoder.decode() pour décoder le nom du fichier au format UTF-8.

3. Obtenez le nom de fichier d'origine basé sur l'en-tête HTTP🎜🎜rrreee🎜Extrayez le nom de fichier d'origine de l'en-tête HTTP pour éviter les problèmes d'encodage. 🎜🎜🎜4. Utiliser des bibliothèques tierces🎜🎜🎜Certaines bibliothèques tierces fournissent des méthodes pratiques pour gérer les noms de fichiers tronqués, telles que : 🎜
  • 🎜Apache Commons IO:🎜 FileUtils.writeByteArrayToFile( ) La fonction détermine automatiquement l'encodage du nom de fichier et le décode. 🎜
  • 🎜JCodec :🎜 La fonction FileGrab() fournit la méthode getFile() pour obtenir le nom de fichier d'origine du fichier téléchargé. 🎜🎜🎜🎜5. Contactez le serveur 🎜🎜🎜 Si les solutions ci-dessus ne sont pas efficaces, veuillez contacter le développeur côté serveur pour vérifier si les paramètres d'encodage des fichiers côté serveur sont corrects. 🎜

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal