Empfangen hochgeladener Dateien in Golang über net/http und Mux
Einführung
Aufbau eines Servers, der damit umgeht Das Hochladen von Dateien ist eine häufige Aufgabe in der Webentwicklung. In Golang können Sie das Paket net/http verwenden, um Datei-Uploads effizient zu verwalten. Hier finden Sie eine umfassende Anleitung zum Empfangen hochgeladener Dateien auf einem Golang-Netz-/http-Server mit dem beliebten Mux-Router.
Implementieren des Datei-Uploads
Um die Funktion zum Hochladen von Dateien auf Ihrem Server zu aktivieren, Sie müssen die folgenden Änderungen vornehmen:
Erstellen Sie einen Endpunkt, der die eingehenden Datei-Upload-Anfragen verarbeitet. Dieser Endpunkt sollte in der Router-Variable definiert werden:
router. Path("/upload"). Methods("POST"). HandlerFunc(UploadFile)
In der UploadFile-Funktion müssen Sie die mehrteiligen Formulardaten analysieren. Hier steht die hochgeladene Datei zur Verfügung:
func UploadFile(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(5 * 1024 * 1024) if err != nil { panic(err) } // Retrieve the file from the multipart form file, header, err := r.FormFile("fileupload") if err != nil { panic(err) } defer file.Close() // Do something with the uploaded file, such as storing it in a database or processing it }
Um die Datei zu verarbeiten, können Sie ihren Inhalt in einen Puffer einlesen und ihn nach Bedarf bearbeiten. Hier ist ein Beispiel:
var buf bytes.Buffer io.Copy(&buf, file) contents := buf.String() fmt.Println(contents)
Wenn Sie die Datei als mehrteilige Formulardaten mit cURL senden, stellen Sie sicher, dass Sie die richtigen Parameter angeben:
curl http://localhost:8080/upload -F "fileupload=[email protected]"
Wenn Sie diese Schritte befolgen, können Sie mit Mux erfolgreich hochgeladene Dateien auf Ihrem Golang-Netz-/http-Server empfangen.
Das obige ist der detaillierte Inhalt vonWie handhabe ich Datei-Uploads auf einem Golang-Net/http-Server mit Mux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!