码迷,mamicode.com
首页 > Web开发 > 详细

Go文件上传的例子

时间:2016-02-24 17:46:37      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:go开发

直接上代码:
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文件上传的例子

标签:go开发

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!