Golang プロジェクトでファイルのアップロード サイズ制限を構成する: http.Request の FileHeader タイプ属性の MaxFileSize フィールドを設定します。ファイル アップロード ハンドラーを作成し、アップロード ファイルのサイズ制限を設定します。マルチパートフォームを解析し、アップロードされたファイルを抽出します。ファイルをディスクに保存します。ファイルサイズが制限を超えた場合は成功応答またはエラー応答を返します。
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 サイトの他の関連記事を参照してください。