使用 Golang 的 net/http 和 Mux 接收文件上傳
在 Web 開發領域,接收文件上傳是一項常見任務。 Golang 的 net/http 套件提供了一個方便的框架來處理此類請求,特別是與強大的 Mux 路由器結合使用時。
辨識問題
您的程式碼似乎可以正確處理上傳但無法擷取實際檔案內容。罪魁禍首在於UploadFile函數,特別是如何檢索請求正文。
解決方案
要有效接收上傳的文件,請依照下列步驟操作:
解析多部分錶格:
r.ParseMultipartForm(5 * 1024 * 1024) // Sets a limit for the size of the form
訪問文件:
file, header, err := r.FormFile("fileupload")
複製將檔案內容儲存到緩衝區:
var buf bytes.Buffer io.Copy(&buf, file)
以字串形式擷取檔案內容:
contents := buf.String()
範例程式碼
這是UploadFile 函數的修改版本:
func UploadFile(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(5 * 1024 * 1024) var buf bytes.Buffer file, header, err := r.FormFile("fileupload") if err != nil { panic(err) } defer file.Close() fmt.Printf("File name %s\n", header.Filename) io.Copy(&buf, file) fmt.Println(buf.String()) }
其他注意事項
以上是如何使用 net/http 和 Mux 在 Golang 中正確接收檔案上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!