亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 golang 中解析 javascript Blob

在 golang 中解析 javascript Blob

Go
DIEA 2021-12-20 19:02:33
在走,你可以閱讀使用Ajax和形式發送FORMDATA使用r.ParseMultipartForm(),其中填充Form有形式請求數據地圖。func form(w http.ResponseWriter, r *http.Request) {    r.ParseMultipartForm(500) //    fmt.Fprintf(w, "This is the value of %+v", r.Form)}但是,我還沒有找到解析 Blob 的方法。每當我發送一個 Blob 而不是發送表單時,上面的代碼就會返回一個空映射。也就是說,當我發送這個:var blob = new Blob([JSON.stringify(someJavascriptObj)]);//XHR initialization, etc. etc.xhr.send(blob);上面的 Go 代碼不起作用?,F在,當我發送這個:var form = new FormData(document.querySelector("form"));//...xhr.send(form);我可以毫無問題地讀取表單數據。
查看完整描述

3 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

r.ParseMultipartForm(500)

也許這里返回錯誤?嘗試捕獲錯誤:


if err := r.ParseMultipartForm(500); err != nil {

    http.Error(w, err.Error(), http.StatusInternalServerError)

}

此外,請考慮提高 500 字節內存限制,因為較大的 blob 將寫入臨時文件。


查看完整回答
反對 回復 2021-12-20
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

我認為 javascript 將 blob 視為文件,因此您可以查看它 r.MultipartForm.File、獲取文件頭、打開它、讀取、解碼和解析。嘗試例如


r.ParseMultipartForm(500) 

fmt.Fprintf(w, "This is the value of %+v", *r.MultipartForm.File)

}


查看完整回答
反對 回復 2021-12-20
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

我認為 Javascript 的 Blob 是一個十六進制字符串,最終可以轉換為[]byte,這是 Go 中 JSON 的標準類型。


// Once you get the blob

blobString := `7b22666f6f223a205b22626172222c202262617a222c2039395d7d`


b, _ := hex.DecodeString(blobString)

json := string(b)

fmt.Println(json) // prints out {"foo": ["bar", "baz", 99]}

你可能想看看encoding/hex和encoding/binary包解碼從Javascript后天類型的BLOB[]byte中去,如果它不是了。


查看完整回答
反對 回復 2021-12-20
  • 3 回答
  • 0 關注
  • 482 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號