Heim >Backend-Entwicklung >Golang >Wie gehe ich mit Datei-Uploads auf einem Golang-Net/http-Server um?

Wie gehe ich mit Datei-Uploads auf einem Golang-Net/http-Server um?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-09 19:12:25812Durchsuche

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

So empfangen Sie eine hochgeladene Datei über einen Golang-Net/http-Server

Beim Versuch, einen einfachen Datei-Upload-Endpunkt in Golang mithilfe von Mux und Net/http zu implementieren, Abrufen Die Dateidaten aus dem Anfragetext können eine Herausforderung darstellen. Die folgende Lösung behebt dieses Problem:

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
}

Diese Funktion:

  • Parst das mehrteilige Formular der Anfrage.
  • Ruft die hochgeladene Datei aus dem angegebenen Feldnamen ab ( Ersetzen Sie „Datei“ durch Ihren tatsächlichen Feldnamen).
  • Liest den Inhalt der Datei in ein buffer.
  • Druckt den Namen der Datei auf der Konsole.
  • Konvertiert den Inhalt des Puffers in eine Zeichenfolge.
  • Druckt den Inhalt der Datei auf der Konsole.
  • Setzt den Puffer für eine mögliche Wiederverwendung zurück.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Datei-Uploads auf einem Golang-Net/http-Server um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn