Maison >développement back-end >Golang >Comment recevoir et traiter des fichiers téléchargés dans Go en utilisant net/http ?

Comment recevoir et traiter des fichiers téléchargés dans Go en utilisant net/http ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-12 16:43:10310parcourir

How to Receive and Process Uploaded Files in Go using net/http?

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!

Déclaration:
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