diff --git a/.example/net/ghttp/client/upload/server.go b/.example/net/ghttp/client/upload/server.go index 8c8b50677..27f4322ee 100644 --- a/.example/net/ghttp/client/upload/server.go +++ b/.example/net/ghttp/client/upload/server.go @@ -4,28 +4,36 @@ import ( "github.com/gogf/gf/frame/g" "github.com/gogf/gf/net/ghttp" "github.com/gogf/gf/os/gfile" + "io" ) -// 执行文件上传处理,上传到系统临时目录 /tmp +// Upload uploads file to /tmp . func Upload(r *ghttp.Request) { - if f, h, e := r.FormFile("upload-file"); e == nil { - defer f.Close() - name := gfile.Basename(h.Filename) - buffer := make([]byte, h.Size) - f.Read(buffer) - gfile.PutBytes("/tmp/"+name, buffer) - r.Response.Write(name + " uploaded successly") - } else { - r.Response.Write(e.Error()) + f, h, e := r.FormFile("upload-file") + if e != nil { + r.Response.Write(e) } + defer f.Close() + savePath := "/tmp/" + gfile.Basename(h.Filename) + file, err := gfile.Create(savePath) + if err != nil { + r.Response.Write(err) + return + } + defer file.Close() + if _, err := io.Copy(file, f); err != nil { + r.Response.Write(err) + return + } + r.Response.Write("upload successfully") } -// 展示文件上传页面 +// UploadShow shows uploading page. func UploadShow(r *ghttp.Request) { r.Response.Write(`
-