在 Go 语言中,可以使用标准库中的 net/http
包来实现文件上传功能。
首先,你需要创建一个 HTML 表单,其中包含一个文件输入字段,以便用户可以选择要上传的文件。表单应当使用 POST
方法提交,并且 enctype
应设置为 "multipart/form-data"
,以便能够正确地上传文件。
然后,在 Go 程序中,你可以使用 http.ListenAndServe
函数来启动一个 HTTP 服务器,并使用 http.HandleFunc
函数来注册一个处理器函数,用于处理表单的 POST
请求。处理器函数应当使用 r.ParseMultipartForm
函数来解析表单数据,然后使用 r.FormFile
函数来获取上传的文件及其信息。最后,你可以使用标准库中的 io
包中的函数来读取文件内容并将其保存到本地磁盘。
下面是一个简单的例子,演示了如何使用 Go 语言实现文件上传功能:
``` package main
import ( "fmt" "io" "net/http" "os" )
func uploadHandler(w http.ResponseWriter, r *http.Request) { // 解析表单数据 err := r.ParseMultipartForm(1024) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return }
// 获取文件及其信息
file, fileHeader, err := r.FormFile("uploadfile")
if err != nil {
http.Error(w, err.Error(), http.