Как получить имя файла размещенных двоичных данных с помощью Golang? - PullRequest
0 голосов
/ 17 декабря 2018

Я отправляю CSV-файл в виде двоичного файла, используя клиент Postman REST API.Мне нужно получить имя файла загруженного файла.

enter image description here

Вот простой пример размещения файла 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))
}

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Так как нет имени файла, связанного с телом 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))
}
0 голосов
/ 17 декабря 2018

Вы можете использовать кодировку, например form-data, которая включает имя файла для загрузки файла с почтальоном.Это поможет вам отправить multipart/form-data запрос на сервер.После этого вы можете извлечь имя файла со стороны сервера.

enter image description here

Со стороны сервера

func uploadData(w http.ResponseWriter, req *http.Request) {
    _, header, _ := req.FormFile("demo")
    fmt.Println(header.Filename)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...