我有10GB的大文件,我正在尝试通过Postman在Go中上传多部分/表单数据。由于我不太了解文件上传在Go中的工作原理,因此我在YouTube上找到了教程。
文件上传适用于较小的文件,但在较大的文件上总是崩溃,并显示消息:“运行时:9193373696字节的虚拟Alloc失败,errno = 1455致命错误:内存不足”。以下是我尝试编写的代码:
err := r.ParseMultipartForm(500 << 20)
if err != nil {
fmt.Fprintln(w, err)
}
file, handler, err := r.FormFile("file")
if err != nil {
fmt.Fprintln(w, err)
}
fmt.Fprintln(w, handler.Filename)
fmt.Fprintln(w, handler.Size)
fmt.Fprintln(w, handler.Header.Get("Content-type"))
defer file.Close()
saveLocation := "C:\\Users\\Pc\\go\\src\\github.com\\test\\uptest"
tempFile, err := ioutil.TempFile(saveLocation, "upload")
if err != nil {
fmt.Fprintln(w, err)
}
defer tempFile.Close()
fileBytes, err := ioutil.ReadAll(file)
if err != nil {
fmt.Fprintln(w, err)
}
tempFile.Write(fileBytes)
FFIVE
相关分类