首页 > Web开发 > 详细

Go文件上传的例子

时间:2016-02-24 17:44:41      阅读:278      评论:0      收藏:0      [点我收藏+]
直接上代码:
func upload(w http.ResponseWriter, r *http.Request) {
    fmt.Println("method:", r.Method) //获取请求的方法
    if r.Method == "GET" {
        crutime := time.Now().Unix()
        h := md5.New()
        io.WriteString(h, strconv.FormatInt(crutime, 10))
        token := fmt.Sprintf("%x", h.Sum(nil))

        t, _ := template.ParseFiles("upload.gtpl")
        t.Execute(w, token)
    } else {
        r.ParseMultipartForm(32 << 20)
        file, handler, err := r.FormFile("uploadfile")
        if err != nil {
            fmt.Println(err)
            return
        }
        defer file.Close()
        fmt.Fprintf(w, "%v", handler.Header)
        f, err := os.OpenFile("./test/"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
        if err != nil {
            fmt.Println(err)
            return
        }
        defer f.Close()
        io.Copy(f, file)
    }
}

func main() {
    http.HandleFunc("/", upload)
    err := http.ListenAndServe(":9000", nil)
    if err != nil {
        fmt.Println("error:", err)
    }

}
upload.gtpl文件如下
<html>
<head>
<title>上传文件</title>
</head>
<form enctype="multipart/form-data" action="http://127.0.0.1:9000/upload" method="post">
<input type="file" name="uploadfile" />
<input type="hidden" name="toke" value="{{.}}"/>
<input type="submit" value="upload">
</form>
</body>
</html>


本文出自 “东神要一打五” 博客,谢绝转载!

Go文件上传的例子

原文:http://gdutccd.blog.51cto.com/9271664/1744657

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!