1
マルチパートフォームファイルを読む必要があります。カスタムのreq objをhttp.requestオブジェクトではなくハンドラ関数に渡しています.Gorilla Muxを使用しています。 ハンドラの署名はこのようなものです:
マルチパートファイルのアップロード:FileHeadersの処理方法
func handlerFunc(w http.ResponseWriter, cR *custReqObj)
私はこのようにそれをアクセスしています:
fileHeaders := cR.MultipartForm.File["file"]
fileHeader := fileHeaders[0]
fileName := fileHeader.Filename
file, err := fileHeader.Open()
私はリクエストオブジェクトを持っていけないので、私はこれを行うことはできません。
request.FormFile["file"]
を
私はhttp.FormFileを通過し、最初のファイルヘッダも返します。
if r.MultipartForm != nil && r.MultipartForm.File != nil {
if fhs := r.MultipartForm.File[key]; len(fhs) > 0 {
f, err := fhs[0].Open()
return f, fhs[0], err
}
}
は私のアプローチは正しいですし、その場合には、私は複数のファイルのヘッダーを検討する必要があるでしょうか? ファイルヘッダーと、マルチパートパッケージがgolangでどのように機能するのかを明らかにしていただければ幸いです。
どのように 'custReqObj'を定義しますか?私は 'Request'オブジェクトをあなたのカスタムリクエストに埋め込む/ includeする必要があると思うので、' http.Request'で定義されたメソッドを使うことができます。 [the doc](https://golang.org/pkg/net/http/#Request.FormFile)で述べたように、 'Request.FormFile'は最初のファイルだけを返します。複数のファイルや複数のセクションがある場合は、['Request.MultipartReader'](https://golang.org/pkg/net/http/#Request.MultipartReader)を使って各パーツを読み込み、' Part.FileName 'または' Part.FormName'を使用して対応するデータにアクセスします。 – putu