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语言程序设计有所帮助。