Heim >Backend-Entwicklung >Golang >Wie kann ich Datei-Uploads in Golang mit net/http und Mux ordnungsgemäß empfangen?

Wie kann ich Datei-Uploads in Golang mit net/http und Mux ordnungsgemäß empfangen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-10 20:57:11894Durchsuche

How to Properly Receive File Uploads in Golang using net/http and Mux?

Empfangen von Datei-Uploads mit Golangs Netz/http und Mux

In der Welt der Webentwicklung ist das Empfangen von Datei-Uploads eine häufige Aufgabe. Das Net/http-Paket von Golang bietet einen praktischen Rahmen für die Bearbeitung solcher Anfragen, insbesondere in Kombination mit dem leistungsstarken Mux-Router.

Identifizierung des Problems

Ihr Code scheint korrekt zu verarbeiten Der Upload wird zwar nicht durchgeführt, der tatsächliche Dateiinhalt kann jedoch nicht abgerufen werden. Der Übeltäter liegt in der UploadFile-Funktion, insbesondere darin, wie Sie den Anforderungstext abrufen.

Lösung

Um hochgeladene Dateien effektiv zu empfangen, befolgen Sie diese Schritte:

  1. Parsen Sie den Multipart Formular:

    r.ParseMultipartForm(5 * 1024 * 1024) // Sets a limit for the size of the form
  2. Auf die Datei zugreifen:

    file, header, err := r.FormFile("fileupload")
  3. Kopieren Sie die Dateiinhalte zu a Puffer:

    var buf bytes.Buffer
    io.Copy(&buf, file)
  4. Dateiinhalte als Zeichenfolge abrufen:

    contents := buf.String()

Beispielcode

Hier ist eine modifizierte Version Ihrer UploadFile Funktion:

func UploadFile(w http.ResponseWriter, r *http.Request) {
    r.ParseMultipartForm(5 * 1024 * 1024)
    var buf bytes.Buffer

    file, header, err := r.FormFile("fileupload")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    fmt.Printf("File name %s\n", header.Filename)
    io.Copy(&buf, file)
    fmt.Println(buf.String())
}

Zusätzliche Überlegungen

  • Begrenzen Sie die Größe der Datei-Uploads mit ParseMultipartForm(size int64).
  • Verwenden Sie a temporärer Puffer zum Speichern des Dateiinhalts, um den Speicherverbrauch unter Kontrolle zu halten.
  • Schließlich kümmern Sie sich um die den Inhalt der Datei entsprechend anpassen, z. B. auf der Festplatte speichern oder im Speicher verarbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich Datei-Uploads in Golang mit net/http und Mux ordnungsgemäß empfangen?. 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