如何使用Golang获取发布的二进制数据的文件名?

Din*_*lam -6 go gorest

我正在使用Postman REST API客户端将csv文件作为二进制文件发布。我需要获取上传文件的文件名。

在此处输入图片说明

这是将csv文件作为二进制数据发布并将二进制数据存储为csv文件的简单示例。

package main

import (   //"fmt"
           "net/http"
           "os"
           "io"
           "log"
           "github.com/gorilla/mux"
       )

func uploadData(w http.ResponseWriter, req *http.Request) {
    file, err := os.Create("hello.csv")
    _, err = io.Copy(file, req.Body)
    _ = err
}

func main(){
  router := mux.NewRouter()
  router.HandleFunc("/parse", uploadData).Methods("POST")
  log.Fatal(http.ListenAndServe(":8000", router))
}
Run Code Online (Sandbox Code Playgroud)

Kib*_*Gzr 5

您可以使用一种编码,例如form-data,其中包含使用邮递员上传文件的文件名。这将帮助您将multipart/form-data请求发送到服务器。之后,您可以从服务器端提取文件名。

在此处输入图片说明

从服务器端

func uploadData(w http.ResponseWriter, req *http.Request) {
    _, header, _ := req.FormFile("demo")
    fmt.Println(header.Filename)
}
Run Code Online (Sandbox Code Playgroud)

  • 表单数据本身没有理由比其他任何编码都要好。您也可以使用JSON,XML,zip文件或包含文件名的_any other_编码 (2认同)
  • 完全同意你 (2认同)