亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Golang 獲取發布的二進制數據的文件名?

如何使用 Golang 獲取發布的二進制數據的文件名?

Go
MMTTMM 2023-05-15 15:47:11
我使用 Postman REST API 客戶端將一個 csv 文件作為二進制文件發布。我需要獲取上傳文件的文件名。這是一個將 csv 文件作為二進制數據發布并將二進制數據存儲為 csv 文件的簡單示例。package mainimport (   //"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))}
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您可以使用編碼,例如form-data,其中包括文件名以使用郵遞員上傳文件。這將幫助您向服務器發送multipart/form-data請求。之后,您可以從服務器端提取文件名。

http://img1.sycdn.imooc.com//6461e3ac000147db12270304.jpg

從服務器端


func uploadData(w http.ResponseWriter, req *http.Request) {

    _, header, _ := req.FormFile("demo")

    fmt.Println(header.Filename)

}


查看完整回答
反對 回復 2023-05-15
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

因為,沒有與 HTTP 請求正文關聯的文件名。如果要獲取文件名,則必須在 URL 中發送文件名。


package main


import (   

           "net/http"

           "os"

           "io"

           "log"

           "github.com/gorilla/mux"


       )


func uploadData(w http.ResponseWriter, req *http.Request) {

    params := mux.Vars(req)

    file, err := os.Create(params["fileName"])

    _, err = io.Copy(file, req.Body)

    if err!=nil{

      log.Printf("Error while Posting data")

    }

}


func main(){

  router := mux.NewRouter()

  router.HandleFunc("/upload/{fileName}", uploadData).Methods("POST")

  log.Fatal(http.ListenAndServe(":8000", router))

}


查看完整回答
反對 回復 2023-05-15
  • 2 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號