「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Mux を使用して Golang net/http サーバーでファイルのアップロードを処理する方法?

Mux を使用して Golang net/http サーバーでファイルのアップロードを処理する方法?

2024 年 12 月 11 日に公開
ブラウズ:776

How to Handle File Uploads in a Golang net/http Server with Mux?

net/http と Mux を使用して Golang でアップロードされたファイルを受信する

はじめに
処理するサーバーの構築ファイルのアップロードは、Web 開発における一般的なタスクです。 Golang では、net/http パッケージを利用してファイルのアップロードを効率的に管理できます。ここでは、一般的な Mux ルーターを使用して Golang net/http サーバーでアップロードされたファイルを受信する方法に関する包括的なガイドを示します。

ファイル アップロードの実装
サーバーでファイル アップロード機能を有効にするには、次の変更を行う必要があります:

  1. 受信ファイル アップロード リクエストを処理するエンドポイントを作成します。このエンドポイントはルーター変数:

    router.
         Path("/upload").
         Methods("POST").
         HandlerFunc(UploadFile)
  2. 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
    }
  3. ファイルを処理するには、その内容をバッファーに読み取り、必要に応じて処理します。以下に例を示します:

    var buf bytes.Buffer
     io.Copy(&buf, file)
     contents := buf.String()
     fmt.Println(contents)
  4. cURL を使用してファイルをマルチパート フォーム データとして送信する場合は、正しいパラメータを指定してください:

    curl http://localhost:8080/upload -F "fileupload=[email protected]"

次の手順に従うことで、 Mux を使用して Golang net/http サーバーにアップロードされたファイルを正常に受信できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3