ホームページ  >  記事  >  バックエンド開発  >  Golang プロジェクトでファイルのアップロード サイズ制限を設定するにはどうすればよいですか?

Golang プロジェクトでファイルのアップロード サイズ制限を設定するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-05-31 10:32:49567ブラウズ

Golang プロジェクトでファイルのアップロード サイズ制限を構成する: http.Request の FileHeader タイプ属性の MaxFileSize フィールドを設定します。ファイル アップロード ハンドラーを作成し、アップロード ファイルのサイズ制限を設定します。マルチパートフォームを解析し、アップロードされたファイルを抽出します。ファイルをディスクに保存します。ファイルサイズが制限を超えた場合は成功応答またはエラー応答を返します。

如何在 Golang 项目中配置文件上传大小限制?

Golang プロジェクトでファイルのアップロード サイズ制限を構成する方法

Golang プロジェクトでアップロード サイズ制限を構成するには、MaxFileSize 字段,该字段是 http.Request の FileHeader タイプ属性を設定する必要があります。その方法は次のとおりです:

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

func main() {
    // 设置上传文件大小限制为 10 MB
    maxFileSize := int64(10 * 1024 * 1024)

    // 创建文件上传处理程序
    http.HandleFunc("/upload", func(w http.ResponseWriter, r *http.Request) {
        // 检查请求是否是多部分表单
        if r.Method == "POST" && r.MultipartForm == nil {
            http.Error(w, "请求不是多部分表单", http.StatusBadRequest)
            return
        }

        // 解析多部分表单
        if err := r.ParseMultipartForm(maxFileSize); err != nil {
            http.Error(w, fmt.Sprintf("解析表单时出错:%v", err), http.StatusInternalServerError)
            return
        }

        // 提取上传文件
        file, fileHeader, err := r.FormFile("file")
        if err != nil {
            http.Error(w, fmt.Sprintf("提取文件时出错:%v", err), http.StatusBadRequest)
            return
        }
        defer file.Close()

        // 将文件保存到磁盘
        dst, err := os.Create("uploaded_file")
        if err != nil {
            http.Error(w, fmt.Sprintf("保存文件时出错:%v", err), http.StatusInternalServerError)
            return
        }
        defer dst.Close()

        if _, err = io.Copy(dst, file); err != nil {
            http.Error(w, fmt.Sprintf("复制文件时出错:%v", err), http.StatusInternalServerError)
            return
        }

        // 返回成功响应
        fmt.Fprintf(w, "文件上传成功!")
    })

    // 启动服务器
    log.Fatal(http.ListenAndServe(":8080", nil))
}

実用的な例:

Postman または cURL を使用して 10 MB を超えるファイルをアップロードすると、次のようなエラー応答が返されます:

{
    "error": "文件大小超出了限制"
}

以上がGolang プロジェクトでファイルのアップロード サイズ制限を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。