net/http と Mux を使用して Golang でアップロードされたファイルを受信する
概要
ファイルのアップロードは、Web 開発における一般的なタスクです。 Golang では、net/http パッケージを利用してファイルのアップロードを効率的に管理できます。ここでは、一般的な Mux ルーターを使用して Golang net/http サーバーでアップロードされたファイルを受信する方法に関する包括的なガイドを示します。
ファイル アップロードの実装
サーバーでファイル アップロード機能を有効にするには、次の変更を行う必要があります:
受信ファイルを処理するエンドポイントを作成するアップロードリクエスト。このエンドポイントはルーター変数で定義する必要があります:
router. Path("/upload"). Methods("POST"). HandlerFunc(UploadFile)
UploadFile 関数では、マルチパート フォーム データを解析する必要があります。ここで、アップロードされたファイルが利用可能になります:
func UploadFile(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(5 * 1024 * 1024) if err != nil { panic(err) } // Retrieve the file from the multipart form file, header, err := r.FormFile("fileupload") if err != nil { panic(err) } defer file.Close() // Do something with the uploaded file, such as storing it in a database or processing it }
ファイルを処理するには、その内容をバッファーに読み取り、必要に応じて処理できます。次に例を示します:
var buf bytes.Buffer io.Copy(&buf, file) contents := buf.String() fmt.Println(contents)
cURL を使用してファイルをマルチパート フォーム データとして送信する場合は、正しいパラメータを指定してください:
curl http://localhost:8080/upload -F "fileupload=[email protected]"
これらの手順に従うと、Golang net/http サーバーでアップロードされたファイルを正常に受信できます。マックス。
以上がMux を使用して Golang net/http サーバーでファイルのアップロードを処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。