后端通过r.ParseMultipartForm解析multipart/form-data请求,使用r.MultipartForm.File获取文件切片处理多文件上传,前端表单需设置enctype="multipart/form-data"并添加multiple属性支持多文件选择。

在Golang中实现Web表单多文件上传与管理,关键在于正确解析multipart/form-data请求、安全地保存文件,并提供后续的管理能力。下面从后端处理、前端配合到文件管理给出完整方案。
前端HTML表单需设置enctype="multipart/form-data"并允许选择多个文件:
<input type="file" name="files" multiple>
后端使用r.MultipartForm.File获取文件切片:
立即学习“go语言免费学习笔记(深入)”;
func uploadHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
http.Error(w, "仅支持POST", 405)
return
}
err := r.ParseMultipartForm(32
if err != nil {
http.Error(w, err.Error(), 400)
return
}
files := r.MultipartForm.File["files"]
for _, fileHeader := range files {
file, err := fileHeader.Open()
if err != nil {
continue
}
defer file.Close()
dst, _ := os.Create("./uploads/" + fileHeader.Filename)
defer dst.Close()
io.Copy(dst, file)
}
w.Write([]byte("上传成功"))
}
直接使用用户上传的文件名存在风险,建议重命名并限制类型:
上传成功后应将元数据存入数据库以便管理:
基本上就这些。核心是安全处理上传、合理组织存储、建立元数据关联。Golang标准库已足够支撑基础功能,结合SQLite或MySQL就能构建稳定的小型文件管理系统。
以上就是Golang Web表单多文件上传与管理的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号