登录
首页 >  Golang >  Go问答

在Go服务器上接收JavaScript文件

来源:stackoverflow

时间:2024-02-12 09:18:24 184浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《在Go服务器上接收JavaScript文件》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我正在尝试将一组 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 中操作这些详细信息。


正确答案


如果您将文件作为多部分表单的一部分传递,您应该将其解析为表单,并稍后用作单独的 json。

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 文件或将其写入系统中的文件。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>