Golang の net/http および Mux を使用したファイル アップロードの受信
Web 開発の世界では、ファイル アップロードの受信は一般的なタスクです。 Golang の net/http パッケージは、特に強力な Mux ルーターと組み合わせた場合に、このようなリクエストを処理するための便利なフレームワークを提供します。
問題の特定
コードは正しく処理されているようです。アップロードはできますが、実際のファイルの内容を取得できません。原因は、UploadFile 関数、特にリクエスト本文の取得方法にあります。
解決策
アップロードされたファイルを効果的に受信するには、次の手順に従います。
マルチパートを解析するフォーム:
r.ParseMultipartForm(5 * 1024 * 1024) // Sets a limit for the size of the form
ファイルへのアクセス:
file, header, err := r.FormFile("fileupload")
ファイルをコピーファイルの内容をバッファ:
var buf bytes.Buffer io.Copy(&buf, file)
ファイルの内容を文字列として取得:
contents := buf.String()
例コード
これは、UploadFile 関数の修正バージョンです。
func UploadFile(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(5 * 1024 * 1024) var buf bytes.Buffer file, header, err := r.FormFile("fileupload") if err != nil { panic(err) } defer file.Close() fmt.Printf("File name %s\n", header.Filename) io.Copy(&buf, file) fmt.Println(buf.String()) }
追加の考慮事項
以上がnet/http と Mux を使用して Golang でファイルのアップロードを適切に受信する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。