양식 양식을 사용하여 Go 언어로 파일 업로드를 구현하는 단계는 다음과 같습니다. HTML에서 enctype="multipart/form-data" 속성을 설정하고 양식을 만듭니다. 양식 요청을 처리하려면 Go에서 r.ParseMultipartForm()을 사용하세요. r.FormFile()을 사용하여 파일을 가져옵니다. 파일을 생성하고 io.Copy()를 사용하여 대상 위치에 저장합니다.
웹 애플리케이션에서는 양식 파일 업로드가 일반적인 시나리오입니다. Golang은 이 기능을 쉽고 효율적으로 구현하는 데 사용할 수 있는 강력한 HTTP 패키지를 제공합니다.
먼저 HTML 페이지에서 양식을 만들고 양식에 파일 데이터가 포함됨을 나타내는 enctype="multipart/form-data"
속성을 설정합니다. enctype="multipart/form-data"
属性,这表明表单将包含文件数据:
<form action="/upload" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form>
在 Go HTTP 处理程序中,使用 ParseMultipartForm
func uploadHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(32 << 20) // 设置最大文件大小为 32MB if err != nil { http.Error(w, "无法解析表单数据", http.StatusBadRequest) return } // 获取文件 file, _, err := r.FormFile("file") if err != nil { http.Error(w, "无法获取上传文件", http.StatusInternalServerError) return } defer file.Close() // 保存文件 dst, err := os.Create("uploaded_file") if err != nil { http.Error(w, "无法创建目标文件", http.StatusInternalServerError) return } defer dst.Close() if _, err := io.Copy(dst, file); err != nil { http.Error(w, "无法写入文件", http.StatusInternalServerError) return } http.Redirect(w, r, "/success", http.StatusFound) }
ParseMultipartForm
을 사용하여 양식 요청을 처리합니다. package main import ( "fmt" "net/http" "os" ) func uploadHandler(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(32 << 20) if err != nil { http.Error(w, "无法解析表单数据", http.StatusBadRequest) return } file, _, err := r.FormFile("file") if err != nil { http.Error(w, "无法获取上传文件", http.StatusInternalServerError) return } filename := "./uploaded_file_" + r.Form.Get("file") dst, err := os.Create(filename) if err != nil { http.Error(w, "无法创建目标文件", http.StatusInternalServerError) return } if _, err := io.Copy(dst, file); err != nil { http.Error(w, "无法写入文件", http.StatusInternalServerError) return } fmt.Fprintf(w, "文件 %s 上传成功!", filename) } func main() { http.HandleFunc("/upload", uploadHandler) http.ListenAndServe(":8080", nil) }
위 내용은 Golang을 사용하여 양식 양식 파일 업로드를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!