Maison > développement back-end > Golang > Traitement des fichiers d'application Web d'apprentissage Golang

Traitement des fichiers d'application Web d'apprentissage Golang

WBOY
Libérer: 2023-06-24 10:11:37
original
1427 Les gens l'ont consulté

Avec le développement continu de la technologie Internet, la demande d'applications Web augmente également. Dans le processus de développement d'applications Web, il est souvent nécessaire de gérer des opérations sur les fichiers et les répertoires, telles que le téléchargement de fichiers, l'affichage de listes de fichiers, etc. Dans le langage Golang, le traitement des fichiers est un point de connaissance très basique et un élément indispensable du développement d'applications Web. Cet article présentera comment Golang gère les opérations sur les fichiers dans les applications Web.

1. Opérations sur les fichiers

Les opérations sur les fichiers dans Golang sont principalement implémentées via le package os. Le package os fournit principalement les fonctions d'opération de fichiers et de répertoires suivantes :

1 Créer un fichier ou un répertoire
Nom de la fonction : os.Create(name string) (*os.File, erreur) #🎜 🎜# Objectif de la fonction : Créer un fichier nommé name. Si le fichier n'existe pas, créez-le. S'il existe, effacez le fichier

Nom de la fonction : os.Mkdir(name string, perm. os.FileMode) erreur

Objectif de la fonction : Créer un répertoire nommé name, le paramètre perm spécifie les autorisations du répertoire

Nom de la fonction : os.MkdirAll(path string, perm os.FileMode) error#🎜🎜 #Objectif de la fonction : Créer un répertoire multi-niveaux, si le répertoire existe déjà, aucune opération ne sera effectuée


2 Ouvrir le fichier

Nom de la fonction : os.Open(. chaîne de nom) (*os. Fichier, erreur)

Objectif de la fonction : Ouvrir un fichier nommé nom, si le fichier n'existe pas, renvoyer une erreur

3. 🎜🎜#Nom de la fonction : os. Remove(name string) error

Objectif de la fonction : Supprimer un fichier ou un répertoire nommé name Si le fichier ou le répertoire n'existe pas, une erreur est renvoyée


. Nom de la fonction : os.RemoveAll(path string ) error
Objectif de la fonction : Supprimer un répertoire multi-niveaux Si le répertoire n'existe pas, une erreur est renvoyée

4. 🎜#Nom de la fonction : os.ReadDir(dirname string) ([]os.DirEntry, erreur)
Objectif de la fonction : lire tous les fichiers et informations de répertoire sous le répertoire dirname et renvoyer une tranche de type os.DirEntry#🎜 🎜#

2. Téléchargement de fichiers#🎜🎜 #

Dans les applications Web, le téléchargement de fichiers est une exigence fonctionnelle courante. La méthode d'implémentation spécifique est la suivante :

1. la balise d'entrée du fichier téléchargé dans le formulaire HTML

<input type="file" name="uploadfile" />
<input type="submit" value="上传文件" />
Copier après la connexion

2. Dans le backend Dans le code, récupérez les informations sur le fichier téléchargé

file, handler, err := r.FormFile("uploadfile")#🎜🎜 #if err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

où r est une variable de type http.Request Les informations sur le fichier peuvent être obtenues via la fonction r.FormFile. l’acquisition échoue, un message d’erreur sera renvoyé.

3. Enregistrez le fichier téléchargé

out, err := os.Create("./uploads/" + handler.Filename)

if err != néant {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

defer out.Close()

_, err = io.Copy(out, file)
if err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

Après avoir obtenu les informations sur le fichier, vous devez créer un fichier de sortie, puis écrire le contenu du fichier téléchargé via io.Copy fonction Dans le fichier de sortie, terminez l'opération de sauvegarde du fichier.

3. Téléchargement de fichiers

En plus du téléchargement de fichiers, le téléchargement de fichiers est également une exigence fonctionnelle courante dans les applications Web. La méthode de mise en œuvre spécifique est la suivante :

. #🎜🎜 #1.Envoyer des fichiers via le protocole HTTP

filename := "./uploads/examplefile.txt"

f, err := os.Open(filename) #🎜🎜 #if err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

defer f.Close()

header := make([]byte, 512)# 🎜🎜# if _, err := f.Read(header); err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}


fileStat, err := f.Stat()# 🎜🎜# if err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

w.Header().Set("Content-Disposition", "attachment; filename="+filename) #🎜🎜 #w.Header().Set("Content-Type", http.DetectContentType(header))

w.Header().Set("Content-Length", strconv.FormatInt(fileStat.Size (), 10))

f.Seek(0, 0)

io.Copy(w, f)

Dans cet exemple, d'abord via le système d'exploitation Fonction .Open Ouvrez le fichier qui doit être téléchargé, puis envoyez le contenu du fichier et les informations associées via le protocole http, et enfin écrivez le contenu du fichier dans le corps de la réponse HTTP via la fonction io.Copy pour implémenter l'opération de téléchargement de fichier.

4. Affichage de la liste de fichiers

Dans les applications Web, l'affichage de la liste de fichiers est également une exigence fonctionnelle courante, qui peut être réalisée grâce aux méthodes suivantes :

#🎜 🎜# 1. Récupérez la liste des fichiers dans le répertoire

dir, err := os.ReadDir("./uploads")

if err != nil {

//处理错误信息
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
# 🎜🎜# }

2. Parcourez la liste des fichiers et affichez

for _, d := range dir {

if !d.IsDir() {
    fmt.Fprintf(w, "<a href="/download?file=%s">%s</a><br>", d.Name(), d.Name())
}
Copier après la connexion
}#🎜🎜 ##🎜🎜 #Dans cet exemple, la liste des fichiers dans le répertoire spécifié est obtenue via la fonction os.ReadDir, puis la liste des fichiers est affichée sur la page Web via l'opération de traversée et un lien de téléchargement de fichier est fourni.

5. Résumé

A travers l'introduction de cet article, nous pouvons constater que les opérations sur les fichiers en langage Golang sont très basiques, mais ce sont des points de connaissances essentiels pour développer des applications web. . Le téléchargement de fichiers, le téléchargement et l'affichage de listes sont des exigences courantes en matière d'exploitation de fichiers. Dans le développement réel, les méthodes ci-dessus doivent être appliquées de manière flexible pour répondre aux besoins des applications Web.

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