Pour les noms de fichiers vides lors du téléchargement de fichiers Go, les étapes suivantes doivent être suivies : Vérifiez si l'objet FormFile existe et renvoyez une erreur s'il est vide. Créez un analyseur personnalisé pour vérifier si le nom du fichier téléchargé est vide et renvoyez une erreur s'il est vide.
Directives pour la gestion des noms de fichiers vides lors du téléchargement de fichiers Golang
Lors du traitement des téléchargements de fichiers en langage Go, vous pouvez rencontrer des scénarios dans lesquels les utilisateurs soumettent des noms de fichiers vides. Cela peut conduire à diverses erreurs qui affectent la stabilité de l'application et l'expérience utilisateur. Pour résoudre ce problème, voici un guide sur la façon de gérer en toute sécurité et efficacement les noms de fichiers vides dans les téléchargements de fichiers Golang.
Vérifiez l'objet FormFile
FormFile
对象
在处理上传的文件之前,始终检查 FormFile
对象是否存在。您可以使用 IsZero
方法来检查对象是否为空:
file, header, err := request.FormFile("file") if file.IsZero() { return errors.New("Empty file received") }
如果 FormFile
对象为空,则返回错误消息,例如 "Empty file received"。
自定义解析器
在某些情况下,您可能无法使用 FormFile
对象。在这种情况下,您可以创建一个自定义解析器。解析器会检查上传的文件并返回一个 multipart.FileHeader
Vérifiez toujours si l'objet FormFile
existe avant de traiter un fichier téléchargé. Vous pouvez utiliser la méthode IsZero
pour vérifier si l'objet est vide :
func parseFile(r *http.Request, key string) (*multipart.FileHeader, error) { if r.MultipartForm == nil { return nil, errors.New("No multipart form found") } file, header, err := r.MultipartForm.File[key] if err != nil { return nil, err } if header.Filename == "" { return nil, errors.New("Empty file received") } return file, nil }
Si l'objet FormFile
est vide, un message d'erreur tel que "Fichier vide reçu" est renvoyé .
Dans certains cas, vous ne pourrez peut-être pas utiliser l'objet 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!FormFile
. Dans ce cas, vous pouvez créer un analyseur personnalisé. L'analyseur vérifie le fichier téléchargé et renvoie un objet multipart.FileHeader
ou une erreur : func handleFileUpload(w http.ResponseWriter, r *http.Request) {
file, header, err := r.FormFile("file")
if err != nil {
http.Error(w, "Error getting file: "+err.Error(), http.StatusInternalServerError)
return
}
if file.IsZero() {
http.Error(w, "Empty file received", http.StatusBadRequest)
return
}
// 处理上传文件
// ...
}