Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Muat Naik Fail dalam Pelayan Golang net/http?

Bagaimana Mengendalikan Muat Naik Fail dalam Pelayan Golang net/http?

Patricia Arquette
Patricia Arquetteasal
2024-12-09 19:12:25885semak imbas

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

Cara Menerima Fail Yang Dimuat Naik Menggunakan Pelayan Golang net/http

Apabila cuba melaksanakan titik akhir muat naik fail mudah di Golang menggunakan Mux dan net/http, mendapatkan semula data fail daripada badan permintaan boleh menimbulkan cabaran. Penyelesaian berikut menangani isu ini:

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
}

Fungsi ini:

  • Menghuraikan borang berbilang bahagian permintaan.
  • Mengambil semula fail yang dimuat naik daripada nama medan yang disediakan ( gantikan "fail" dengan nama medan sebenar anda).
  • Membaca kandungan fail ke dalam penimbal.
  • Mencetak nama fail ke konsol.
  • Menukar kandungan penimbal kepada rentetan.
  • Mencetak kandungan fail ke konsol.
  • Menetapkan semula penimbal untuk potensi penggunaan semula.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Muat Naik Fail dalam Pelayan Golang net/http?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn