golang简单获取上传文件大小的实现代码
本文实例讲述了golang简单获取上传文件大小的方法。分享给大家供大家参考,具体如下:
packagemain import( "fmt" "io" "net/http" "log" "os" ) //获取文件大小的接口 typeSizeinterface{ Size()int64 } //获取文件信息的接口 typeStatinterface{ Stat()(os.FileInfo,error) } //helloworld,thewebserver funcHelloServer(whttp.ResponseWriter,r*http.Request){ if"POST"==r.Method{ file,_,err:=r.FormFile("userfile") iferr!=nil{ http.Error(w,err.Error(),500) return } ifstatInterface,ok:=file.(Stat);ok{ fileInfo,_:=statInterface.Stat() fmt.Fprintf(w,"上传文件的大小为:%d",fileInfo.Size()) } ifsizeInterface,ok:=file.(Size);ok{ fmt.Fprintf(w,"上传文件的大小为:%d",sizeInterface.Size()) } return } //上传页面 w.Header().Add("Content-Type","text/html") w.WriteHeader(200) html:=` <formenctype="multipart/form-data"action="/hello"method="POST"> Sendthisfile:<inputname="userfile"type="file"/> <inputtype="submit"value="SendFile"/> </form> ` io.WriteString(w,html) } funcmain(){ http.HandleFunc("/hello",HelloServer) err:=http.ListenAndServe(":12345",nil) iferr!=nil{ log.Fatal("ListenAndServe:",err) } }
希望本文所述对大家Go语言程序设计有所帮助。