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

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

使用 Go 在 post 請求中處理多個文件

使用 Go 在 post 請求中處理多個文件

Go
慕尼黑5688855 2022-06-06 17:11:52
我正在使用 Go 為音樂流媒體服務編寫服務器端。我需要能夠處理專輯上傳。我希望管理員能夠訪問http://lisn.rocks/upload,選擇一個必須包含meta.json、cover.jpg和一些.mp3歌曲文件的文件夾,單擊上傳,其余的由服務器處理。這是我用來測試此功能的簡單 HTML 頁面:<html>    <head><title>Album Upload</title></head>    <body>        <form enctype="multipart/form-data" action="/upload" method="POST">            <input type="file" name="album" webkitdirectory directory multiple> <br>            <input type="submit" value="Upload">        </form>    </body></html>我需要一個處理函數,它能夠查看meta.json文件、檢查其內容并根據那里的內容進行處理。meta.json包含我需要的所有信息?,F在,我不需要關于使用 Go 或其他相關內容讀取 JSON 的詳細說明。我只需要將該文件夾中的所有文件作為單獨的文件讀取。album相反,當我這樣做時,Go 將它們全部視為一個文件字段request.FormFile("album")。
查看完整描述

2 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

正如文檔FormFile所說,它只返回第一個文件。提交表單時,該album字段將是一個數組,您必須使用多部分流來處理每個單獨的文件。


rd, err:=request.MultipartReader()

for {

  part, err:=rd.NextPart()

  if err==io.EOF {

      break

  }

  data,err:=ioutil.ReadAll(part)

  fileName:=part.FileName()

  part.Close()

}

您需要添加錯誤處理和數據處理等。


查看完整回答
反對 回復 2022-06-06
?
慕工程0101907

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

可以使用請求結構的MultipartForm字段來處理 go 中的多個文件上傳。


    multipartFormData := req.MultipartForm


    for _, v := range multipartFormData.File["attachments"] {

        fmt.Println(v.Filename, ":", v.Size)

        uploadedFile, _ := v.Open()

        // then use the single uploadedFile however you want

        // you may use its read method to get the file's bytes into a predefined slice, 

        //here am just using an anonymous slice for the example

        uploadedFile.Read([]byte{})

        uploadedFile.Close()

    }


查看完整回答
反對 回復 2022-06-06
  • 2 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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