Maison >développement back-end >Golang >Comment gérer les téléchargements de fichiers sur un serveur Golang net/http ?

Comment gérer les téléchargements de fichiers sur un serveur Golang net/http ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-09 19:12:25909parcourir

How to Handle File Uploads in a Golang net/http Server?

Comment recevoir un fichier téléchargé à l'aide d'un serveur Golang net/http

Lorsque vous essayez d'implémenter un simple point de terminaison de téléchargement de fichier dans Golang à l'aide de Mux et net/http, la récupération les données du fichier du corps de la demande peuvent poser un défi. La solution suivante résout ce problème :

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "strings"
)

func ReceiveFile(w http.ResponseWriter, r *http.Request) {
    r.ParseMultipartForm(32 << 20) // limit your max input length!
    var buf bytes.Buffer
    file, header, err := r.FormFile("file") // replace "file" with the expected form field name
    if err != nil {
        panic(err)
    }
    defer file.Close()
    name := strings.Split(header.Filename, ".")
    fmt.Printf("File name %s\n", name[0])
    io.Copy(&buf, file)
    contents := buf.String()
    fmt.Println(contents)
    buf.Reset()
    return
}

Cette fonction :

  • Analyse le formulaire en plusieurs parties de la demande.
  • Récupère le fichier téléchargé à partir du nom de champ fourni ( remplacez "file" par votre nom de champ réel).
  • Lit le contenu du fichier dans un buffer.
  • Imprime le nom du fichier sur la console.
  • Convertit le contenu du tampon en chaîne.
  • Imprime le contenu du fichier sur la console.
  • Réinitialise le tampon pour une réutilisation potentielle.

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