Réception de fichiers téléchargés avec Golang et net/http
Lorsque vous travaillez avec un serveur HTTP, il est courant de gérer les téléchargements de fichiers. Dans Go, à l'aide du package net/http, vous pouvez configurer des points de terminaison pour recevoir et traiter les fichiers téléchargés.
Considérez l'extrait de code suivant :
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { ... // Assuming you already have a router setup, add the following: router. Path("/upload"). Methods("POST"). HandlerFunc(uploadFile) ... }
Dans la fonction uploadFile, vous avez besoin pour analyser le fichier téléchargé à partir de la requête :
func uploadFile(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(5 * 1024 * 1024) if err != nil { panic(err) } // Get the file from the form file, header, err := r.FormFile("file") if err != nil { panic(err) } ... }
L'objet fichier représente le fichier téléchargé, tandis que l'en-tête fournit des informations sur le fichier, comme son nom et sa taille. Vous pouvez ensuite travailler avec le contenu du fichier selon vos besoins.
Par exemple, vous pouvez enregistrer le fichier sur le disque :
f, err := os.Create(header.Filename) if err != nil { log.Fatal(err) } defer f.Close() if _, err := io.Copy(f, file); err != nil { log.Fatal(err) } ...
Vous pouvez également traiter le contenu du fichier directement :
defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { log.Fatal(err) } fmt.Println(string(data)) ...
De cette façon, vous pouvez recevoir et gérer les fichiers téléchargés à l'aide du package net/http de Go.
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!