【问题标题】:Process csv file from upload从上传处理 csv 文件
【发布时间】:2021-02-01 20:23:43
【问题描述】:

我有一个 gin 应用程序,它接收一个包含我想要读取而不保存的 csv 文件的发布请求。我被困在这里,试图从 post 请求中读取以下错误消息:cannot use file (variable of type *multipart.FileHeader) as io.Reader value in argument to csv.NewReader: missing method Read

file, err := c.FormFile("file")
if err != nil {
    errList["Invalid_body"] = "Unable to get request"
    c.JSON(http.StatusUnprocessableEntity, gin.H{
        "status": http.StatusUnprocessableEntity,
        "error":  errList,
    })
}

r := csv.NewReader(file) // <= Error message

records, err := r.ReadAll()

for _, record := range records {
    fmt.Println(record)
}

有没有我可以使用的好例子?

【问题讨论】:

  • 你必须Open该部分。

标签: csv go go-gin


【解决方案1】:

先读取文件和头

csvPartFile, csvHeader, openErr := r.FormFile("file")
if openErr != nil {
    // handle error 
}

然后从文件中读取行

csvLines, readErr := csv.NewReader(csvPartFile).ReadAll()
if readErr != nil {
  //handle error 
}

你可以遍历记录循环的行

for _, line := range csvLines {
        fmt.Println(line)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多