Maison > développement back-end > Golang > Comment implémenter le fichier de téléchargement de formulaire dans le framework Beego

Comment implémenter le fichier de téléchargement de formulaire dans le framework Beego

王林
Libérer: 2023-06-03 09:40:46
original
1472 Les gens l'ont consulté

Dans le développement Web, le téléchargement de fichiers via des formulaires est l'une des opérations les plus courantes. Dans le framework Beego, il est également très simple d’implémenter un formulaire pour télécharger des fichiers. Cet article expliquera comment implémenter des fichiers de téléchargement de formulaires dans le framework Beego.

  1. Préparation

Afin d'implémenter les fichiers de téléchargement de formulaires, le package beego/form doit être introduit dans le framework Beego. Si vous utilisez des modules go, vous pouvez installer beego/form avec la commande suivante :

go get github.com/astaxie/beego/form
Copier après la connexion

Après une installation réussie, importez beego/form dans le fichier où vous devez télécharger le fichier à l'aide du formulaire :

import "github.com/astaxie/beego/form"
Copier après la connexion
  1. Front-end form

Tout d'abord, l'attribut enctype="multipart/form-data" doit être ajouté au fichier HTML frontal afin que le formulaire prenne en charge le téléchargement de fichiers. Le code HTML est le suivant :

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="提交">
</form>
Copier après la connexion

Parmi eux, l'attribut action spécifie l'adresse de soumission du formulaire et l'attribut méthode spécifie la méthode HTTP pour la soumission du formulaire. Notez que dans le framework Beego, l'attribut enctype doit être défini sur "multipart/form-data".

  1. Traitement du contrôleur

Ensuite, traitez le fichier téléchargé par le formulaire dans le contrôleur. En supposant que l'adresse de soumission du formulaire front-end est "/upload", elle peut être traitée comme suit dans le contrôleur correspondant à l'adresse :

func (c *MainController) Upload() {
  file, header, err := c.GetFile("file")
  if err != nil {
    c.Data["json"] = map[string]interface{}{
      "code":    500,
      "message": "文件上传失败",
    }
    c.ServeJSON()
    return
  }
  defer file.Close()
  filename := header.Filename
  if err := c.SaveToFile("file", "static/upload/"+filename); err != nil {
    c.Data["json"] = map[string]interface{}{
      "code":    500,
      "message": "保存文件失败",
    }
    c.ServeJSON()
    return
  }
  c.Data["json"] = map[string]interface{}{
    "code":    200,
    "message": "文件上传成功",
  }
  c.ServeJSON()
}
Copier après la connexion

Dans le contrôleur, on appelle d'abord le c.GetFile("file") méthode pour obtenir les informations téléchargées du fichier du formulaire frontal, où le paramètre « fichier » est la valeur de l'attribut de nom du contrôle de fichier dans le formulaire frontal. Si l'obtention du fichier échoue, un message d'erreur est renvoyé ; sinon, nous utilisons la méthode c.SaveToFile() pour enregistrer le fichier dans le chemin spécifié.

Enfin, nous renvoyons les résultats du téléchargement au front-end sous forme de JSON.

  1. Résumé

Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction de téléchargement de fichier de formulaire dans le framework Beego. Il convient de noter que, étant donné que les téléchargements de fichiers consomment une grande quantité de ressources, dans un environnement de production, des mesures de sécurité telles que des limites de taille de fichier et des limites de type de fichier doivent être définies pour empêcher les chevaux de Troie ou les virus d'attaquer via les téléchargements de fichiers.

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!

Étiquettes associées:
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