Estoy tratando de pasar un conjunto de valores FORM del cliente al servidor. Los valores de FORM incluyen archivos, nombres de usuario y otros detalles también.
¿Cómo decodifico el archivo en el lado del servidor? Aquí uso go lang como mi servidor. Creé un modelo en mi golang para poder decodificar el valor pasado durante la llamada al servidor.
type Details { PhotographValue os.File `json:"photographvalue"` AdharValue os.File `json:"adharvalue"` userName string `json:"username"` }//Parte de decodificación
var clientValues Details decoder := json.NewDecoder(req.Body) err := decoder.Decode(&clientValues)En clientValues obtengo datos de cadena. pero los datos del archivo son nulos. ¿Cómo puedo conseguir esto?
PD: no estoy usando el método habitual de carga de archivos, ya que también tengo otros detalles, estoy manipulando esos detalles en javascript antes de pasarlos al servidor.
Si pasa sus archivos como parte de un formulario de varias partes, debe analizarlo como formulario y usarlo más tarde como jsons por separado.
func handleForm(w http.ResponseWriter, req *http.Request) { const maxAllowedSizeInBytes = 512 * 1024 err := req.ParseMultipartForm(maxAllowedSizeInBytes) if err != nil { // handle error here w.WriteHeader(http.StatusBadRequest) return } photographValue, _, err := req.FormFile("photographvalue") if err != nil { // handle error here w.WriteHeader(http.StatusBadRequest) return } adharValue, _, err := req.FormFile("adharvalue") if err != nil { // handle error here w.WriteHeader(http.StatusBadRequest) return } // photograph := struct{...} {} // json.NewDecoder(file).Decode(&photograph) // or write it to file username := req.FormValue("username") .... }photographValue y adharValue conforman io.Reader y puede usarlo para leer su archivo json o escribirlo en un archivo en el sistema.