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
Libérer: 2024-12-12 16:43:10
original
309 Les gens l'ont consulté

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)
...
}
Copier après la connexion

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)
    }
...
}
Copier après la connexion

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)
    }
...
Copier après la connexion

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))
...
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal