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을 사용하여 10MB보다 큰 파일을 업로드하면 다음과 같은 오류 응답을 받게 됩니다.
{ "error": "文件大小超出了限制" }
위 내용은 Golang 프로젝트에서 파일 업로드 크기 제한을 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!