首頁 >後端開發 >Golang >如何在 Golang net/http 伺服器中處理文件上傳?

如何在 Golang net/http 伺服器中處理文件上傳?

Patricia Arquette
Patricia Arquette原創
2024-12-09 19:12:25814瀏覽

How to Handle File Uploads in a Golang net/http Server?

如何使用Golang net/http 伺服器接收上傳的檔案

當嘗試使用Mux 和net/http 在Golang 中實作簡單的檔案上傳端點時,擷取來自請求正文的文件資料可能會帶來挑戰。以下解決方案解決了此問題:

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "strings"
)

func ReceiveFile(w http.ResponseWriter, r *http.Request) {
    r.ParseMultipartForm(32 << 20) // limit your max input length!
    var buf bytes.Buffer
    file, header, err := r.FormFile("file") // replace "file" with the expected form field name
    if err != nil {
        panic(err)
    }
    defer file.Close()
    name := strings.Split(header.Filename, ".")
    fmt.Printf("File name %s\n", name[0])
    io.Copy(&buf, file)
    contents := buf.String()
    fmt.Println(contents)
    buf.Reset()
    return
}

此函數:

  • 解析請求的多部分錶單。
  • 從提供的欄位名稱檢索上傳的檔案(將「file」替換為您的實際欄位名稱)。
  • 將檔案的內容讀入buffer。
  • 將檔案的名稱列印到控制台。
  • 將緩衝區的內容轉換為字串。
  • 將文件的內容列印到控制台。
  • 重置緩衝區以供重新使用。

以上是如何在 Golang net/http 伺服器中處理文件上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn