将文件从 JavaScript 传递到 Go 服务器
Passing file from JavaScript to Go server
我正在尝试将一组 FORM 值从客户端传递到服务器。 FORM 值还包括文件、用户名和其他详细信息。
如何在服务器端解码文件。这里我使用 go lang 作为我的服务器。
我在我的 golang 中创建了一个模型,这样我就可以解码服务器调用期间传递的值。
type Details {
PhotographValue os.File `json:"photographvalue"`
AdharValue os.File `json:"adharvalue"`
userName string `json:"username"`
}
//解码部分
var clientValues Details
decoder := json.NewDecoder(req.Body)
err := decoder.Decode(&clientValues)
在 clientValues 中我得到字符串数据。但文件数据为零。我怎样才能做到这一点?
PS : 我没有使用通常的文件上传方法,因为我还有其他详细信息,我在 javascript 中处理这些详细信息,然后再传递到服务器。
如果您将文件作为多部分表单的一部分传递,您应该将其解析为表单并稍后作为单独的 jsons 使用。
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 和 adharValue 符合 io.Reader,您可以使用它来读取您的 json 文件或将其写入系统中的文件。
我正在尝试将一组 FORM 值从客户端传递到服务器。 FORM 值还包括文件、用户名和其他详细信息。
如何在服务器端解码文件。这里我使用 go lang 作为我的服务器。 我在我的 golang 中创建了一个模型,这样我就可以解码服务器调用期间传递的值。
type Details {
PhotographValue os.File `json:"photographvalue"`
AdharValue os.File `json:"adharvalue"`
userName string `json:"username"`
}
//解码部分
var clientValues Details
decoder := json.NewDecoder(req.Body)
err := decoder.Decode(&clientValues)
在 clientValues 中我得到字符串数据。但文件数据为零。我怎样才能做到这一点?
PS : 我没有使用通常的文件上传方法,因为我还有其他详细信息,我在 javascript 中处理这些详细信息,然后再传递到服务器。
如果您将文件作为多部分表单的一部分传递,您应该将其解析为表单并稍后作为单独的 jsons 使用。
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 和 adharValue 符合 io.Reader,您可以使用它来读取您的 json 文件或将其写入系统中的文件。