Maison >développement back-end >Golang >Comment préparer du gin golang
Téléchargement et téléchargement de fichiers
Gin est un framework de développement Web développé en langage Go. Il est efficace, facile à utiliser et flexible. Pour le téléchargement et le téléchargement de fichiers, ces fonctions peuvent être facilement implémentées à l'aide du framework Gin. Cet article explique comment utiliser le framework Gin pour télécharger et télécharger des fichiers.
1. Téléchargement de fichiers
Dans le framework Gin, le téléchargement de fichiers nécessite l'utilisation du formulaire MultipartForm. Tout d'abord, vous devez définir les fonctions de routage et de traitement :
router.POST("/upload", uploadHandler)
func uploadHandler(c *gin.Context) {
file, err := c.FormFile("file") if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) return } filename := filepath.Base(file.Filename) if err := c.SaveUploadedFile(file, filename); err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) return } c.JSON(http.StatusOK, gin.H{ "message": fmt.Sprintf("'%s' uploaded!", filename), })
}
Dans la fonction de traitement de téléchargement de fichiers, premier passage La fonction c.FormFile() obtient le fichier téléchargé et gère les erreurs. Obtenez ensuite le nom du fichier et utilisez la fonction c.SaveUploadedFile() pour enregistrer le fichier dans le répertoire spécifié. Enfin, les résultats du téléchargement sont renvoyés via JSON.
Démarrez le service Gin et visitez http://localhost:8080/upload Vous verrez l'interface suivante :
https://user-images.githubusercontent.com/36320997/129822689-f45e849c-7cae-4ad9-9107. - aae98f76d34c.png
Une fois le fichier téléchargé avec succès, vous verrez le résultat de retour JSON suivant :
{
"message": "'test.txt' uploaded!"
}
2. Téléchargement de fichier
Le téléchargement de fichier nécessite le service de fichiers statiques du framework Gin. Ceci peut être réalisé grâce aux opérations suivantes :
1. Créez n'importe quel répertoire dans l'application pour enregistrer les fichiers téléchargés.
2. Dans le routage Gin, définissez l'accès aux fichiers de ce répertoire, comme suit :
router.StaticFS("/download", http.Dir("tmp"))
3. , selon Le nom du fichier définit l'interface de téléchargement, comme suit :
router.GET("/download/:filename", downloadHandler)
func downloadHandler(c *gin.Context) {
filename := c.Param("filename") file := "./tmp/" + filename // 通过配置文件获取下载目录地址,如: "./tmp/" + filename fi, err := os.Stat(file) if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": err.Error(), }) return } c.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", fi.Name())) c.Writer.Header().Set("Content-Type", "application/octet-stream") c.File(file)
}
Dans le fonction de traitement de téléchargement de fichier, vous devez obtenir le nom du fichier via c.Param(), déterminer si le fichier existe, définir l'en-tête de réponse HTTP de téléchargement et enfin écrire le fichier dans la réponse pour implémenter la fonction de téléchargement de fichier.
Démarrez le service Gin et visitez le lien suivant http://localhost:8080/download/test.txt pour télécharger le fichier test.txt.
3. Résumé
Les fonctions de téléchargement et de téléchargement de fichiers sont implémentées via le framework Gin, qui est élégant et concis. Le code ci-dessus n'est que l'implémentation de base. En utilisation réelle, vous devez également prendre en compte l'emplacement et la méthode de stockage des fichiers, ainsi que les opérations ultérieures sur les fichiers, etc. Les lecteurs peuvent l'améliorer en fonction de leurs propres conditions réelles.
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!