我正在嘗試通過 XMLHttpRequest 上傳文件,目前我正在使用 golang當(dāng)我使用 CURL 測試上傳時(shí),一切正常,文件上傳到 Amazon S3 存儲桶,但在使用 Javascript 時(shí)出現(xiàn)以下錯(cuò)誤: multipart: NextPart: EOF這是 JS 部分:document.getElementById("attachment").addEventListener("change", function(e) { var file = this.files[0]; var xhr = new XMLHttpRequest(); var formdata = new FormData(); formdata.append("attachment", file); boundary=Math.random().toString().substr(2); xhr.onreadystatechange = function(e) { if ( 4 == this.readyState ) { console.log(["xhr upload complete", e]); } }; xhr.open("POST", "https://upload_host:8443/upload", true); xhr.setRequestHeader("Content-Type","multipart/form-data; charset=utf-8; boundary=---------------------------"+boundary+";"); xhr.send(formdata);}, false);對于 go 處理程序:func upload_handler(w http.ResponseWriter, r *http.Request, m render.Render) { w.Header().Set("Access-Control-Allow-Origin", "*") file, header, err := r.FormFile("C.Storage.FieldName") if err != nil { // ERROR THROWN HERE ServeHTTP(400, err.Error(), m) return } content, err := ioutil.ReadAll(file) if err != nil { ServeHTTP(400, err.Error(), m) return } fileSize, err := file.Seek(0, 2) //2 = from end if err != nil { ServeHTTP(400, err.Error(), m) return } if fileSize > int64(C.Storage.FileSize) { ServeHTTP(400, "File size limit exceeded", m) return } ftype := http.DetectContentType(content) if !strings.Contains(C.Storage.AllowedMimes, ftype) { ServeHTTP(400, "File type not allowed", m) return } //FUNCTION TO UPLOAD TO AMAZON S3 file.Close()}
通過 xmlhttprequest 上傳文件生成 multipart: NextPart: EOF
慕田峪9158850
2021-11-01 16:40:30