介绍
本篇文章为大家展示了使用golang怎么实现一个文件上传与下载功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
上传。去
package 常见 import ( ,“io/ioutil" ,“os" ,“path" ,“;github.com/gin-gonic/gin" ,“googo.co/goo" ,“googo.co/utils" ) const (=,UPLOAD_DIR “静态/? ) type Upload  struct { } func (却;能够上传),DoHandle (c * gin.Context), * goo.Result { ,跳频,err :=, c.FormFile (“file") ,if err  !=, nil { return 才能;goo.Err(700年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,f, err :=, fh.Open () ,if err  !=, nil { return 才能;goo.Err(701年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,defer f.Close () ,字节,err :=, ioutil.ReadAll (f) ,if err  !=, nil { return 才能;goo.Err(702年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,md5File :=, utils.MD5(字节) ,fpath :=, md5File (0:2), +,“/? +, md5File [2:4], +,“/? ,if err :=, os.MkdirAll (UPLOAD_DIR + fpath, 0755);, err !=, nil { return 才能;goo.Err(703年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,fname :=, fpath +, md5File(八24),+,path.Ext (fh.Filename) 弗兰克-威廉姆斯,大敌;err :=, os.Create(时间+ UPLOAD_DIR 帧) ,if err  !=, nil { return 才能;goo.Err(704年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,defer fw.Close () ,if _, err :=, fw.Write(字节);,err !=, nil { return 才能;goo.Err(705年,“上传失败:“+ err.Error (),, err.Error ()) ,} ,return goo.Succ (gin.H { “url"才能:,“/文件/?+,帧, ,}) }
上述内容就是使用golang怎么实现一个文件上传与下载功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
使用golang怎么实现一个文件上传与下载功能