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

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

Patricia Arquette
發布: 2024-12-09 19:12:25
原創
818 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板