go语言接收html上传的文件,go语言处理文件上传和多个文件上传

uploadOne.HTML代码如下:

Document

文件:

uploadMore.HTML代码如下:

Document

文件:

文件:

文件:

main.go代码如下:

package main

import (

"net/http"

"os"

"io"

"html/template"

"log"

)

func uploadOne(w http.ResponseWriter,r *http.Request) {

//判断请求方式

if r.Method == "POST" {

//设置内存大小

r.ParseMultipartForm(32 << 20);

//获取上传的第一个文件

file,header,err := r.FormFile("file");

defer file.Close();

if err != nil {

log.Fatal(err);

}

//创建上传目录

os.Mkdir("./upload",os.ModePerm);

//创建上传文件

cur,err := os.Create("./upload/" + header.Filename);

defer cur.Close();

if err != nil {

log.Fatal(err);

}

//把上传文件数据拷贝到我们新建的文件

io.Copy(cur,file);

} else {

//解析模板文件

t,_ := template.ParseFiles("./uploadOne.html");

//输出文件数据

t.Execute(w,nil);

}

}

func uploadMore(w http.ResponseWriter,r *http.Request) {

if r.Method == "POST" {

//设置内存大小

r.ParseMultipartForm(32 << 20);

//获取上传的文件组

files := r.MultipartForm.File["file"];

len := len(files);

for i := 0; i < len; i++ {

//打开上传文件

file,err := files[i].Open();

defer file.Close();

if err != nil {

log.Fatal(err);

}

//创建上传目录

os.Mkdir("./upload",os.ModePerm);

//创建上传文件

cur,err := os.Create("./upload/" + files[i].Filename);

defer cur.Close();

if err != nil {

log.Fatal(err);

}

io.Copy(cur,file);

}

} else {

//解析模板文件

t,_ := template.ParseFiles("./uploadMore.html");

//输出文件数据

t.Execute(w,nil);

}

}

func main() {

http.HandleFunc("/uploadMore",uploadMore);

http.HandleFunc("/uploadOne",uploadOne);

err := http.ListenAndServe(":9090",nil);

if err != nil {

log.Fatal(err);

}

}

通过http://127.0.0.1:9090/uploadOne和http://127.0.0.1:9090/upladMore来测试文件上传。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值