Recibir archivos cargados en Golang usando net/http y Mux
Introducción
Construir un servidor que maneje La carga de archivos es una tarea común en el desarrollo web. En Golang, puede utilizar el paquete net/http para administrar eficientemente la carga de archivos. Aquí hay una guía completa sobre cómo recibir archivos cargados en un servidor Golang net/http usando el popular enrutador Mux.
Implementación de la carga de archivos
Para habilitar la funcionalidad de carga de archivos en su servidor, debe realizar los siguientes cambios:
Crear un punto final que maneje las solicitudes de carga de archivos entrantes. Este punto final debe definirse en la variable del enrutador:
router. Path("/upload"). Methods("POST"). HandlerFunc(UploadFile)
En la función UploadFile, debe analizar los datos del formulario de varias partes. Aquí es donde estará disponible el archivo subido:
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 }
Para procesar el archivo, puede leer su contenido en un búfer y manejarlo según sea necesario. Aquí hay un ejemplo:
var buf bytes.Buffer io.Copy(&buf, file) contents := buf.String() fmt.Println(contents)
Si envía el archivo como datos de formulario de varias partes usando cURL, asegúrese de proporcionar los parámetros correctos:
curl http://localhost:8080/upload -F "fileupload=[email protected]"
Si sigue estos pasos, podrá recibir correctamente los archivos cargados en su servidor Golang net/http usando Mux.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3