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:
Parsen Sie den Multipart Formular:
r.ParseMultipartForm(5 * 1024 * 1024) // Sets a limit for the size of the form
Auf die Datei zugreifen:
file, header, err := r.FormFile("fileupload")
Kopieren Sie die Dateiinhalte zu a Puffer:
var buf bytes.Buffer io.Copy(&buf, file)
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
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!