Golang と net/http を使用したアップロード ファイルの受信
HTTP サーバーを使用する場合、ファイルのアップロードを処理するのが一般的です。 Go では、net/http パッケージを使用して、アップロードされたファイルを受信して処理するためのエンドポイントをセットアップできます。
次のコード スニペットを考えてみましょう。
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { ... // Assuming you already have a router setup, add the following: 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) } // Get the file from the form file, header, err := r.FormFile("file") if err != nil { panic(err) } ... }
ファイル オブジェクトはアップロードされたファイルを表し、ヘッダーはファイルに関する情報を提供します。ファイル名とサイズ。その後、必要に応じてファイルの内容を操作できます。
たとえば、ファイルをディスクに保存できます:
f, err := os.Create(header.Filename) if err != nil { log.Fatal(err) } defer f.Close() if _, err := io.Copy(f, file); err != nil { log.Fatal(err) } ...
または、ファイルの内容を直接処理できます:
defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { log.Fatal(err) } fmt.Println(string(data)) ...
このようにして、Go の net/http パッケージを使用してアップロードされたファイルを受信して処理できます。
以上がnet/http を使用して Go でアップロードされたファイルを受信して処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。