最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang簡單獲取上傳文件大小的實現(xiàn)代碼

 更新時間:2016年07月22日 10:59:05   作者:dotcoo  
這篇文章主要介紹了golang簡單獲取上傳文件大小的方法,涉及Go語言文件傳輸及文件屬性操作的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了golang簡單獲取上傳文件大小的方法。分享給大家供大家參考,具體如下:

復(fù)制代碼 代碼如下:
package main
import (
    "fmt"
    "io"
    "net/http"
    "log"
    "os"
)
// 獲取文件大小的接口
type Size interface {
    Size() int64
}
// 獲取文件信息的接口
type Stat interface {
    Stat() (os.FileInfo, error)
}
// hello world, the web server
func HelloServer(w http.ResponseWriter, r *http.Request) {
    if "POST" == r.Method {
        file, _, err := r.FormFile("userfile")
        if err != nil {
            http.Error(w, err.Error(), 500)
            return
        }
        if statInterface, ok := file.(Stat); ok {
            fileInfo, _ := statInterface.Stat()
            fmt.Fprintf(w, "上傳文件的大小為: %d", fileInfo.Size())
        }
        if sizeInterface, ok := file.(Size); ok {
            fmt.Fprintf(w, "上傳文件的大小為: %d", sizeInterface.Size())
        }
        return
    }
    // 上傳頁面
    w.Header().Add("Content-Type", "text/html")
    w.WriteHeader(200)
    html := `
<form enctype="multipart/form-data" action="/hello" method="POST">
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>
`
    io.WriteString(w, html)
}
func main() {
    http.HandleFunc("/hello", HelloServer)
    err := http.ListenAndServe(":12345", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

希望本文所述對大家Go語言程序設(shè)計有所幫助。

相關(guān)文章

  • Go語言中的iota關(guān)鍵字的使用

    Go語言中的iota關(guān)鍵字的使用

    這篇文章主要為大家詳細介紹了Go語言中的iota關(guān)鍵字的相關(guān)使用,文中的示例代碼講解詳細,對我們深入了解Go語言有一定的幫助,需要的可以參考下
    2023-08-08
  • golang內(nèi)存逃逸的學(xué)習(xí)筆記

    golang內(nèi)存逃逸的學(xué)習(xí)筆記

    內(nèi)存逃逸是 Go 語言編程中一個特別需要注意的問題,會影響到程序的性能和穩(wěn)定性,本文主要介紹了golang內(nèi)存逃逸的學(xué)習(xí)筆記,感興趣的可以了解一下
    2024-05-05
  • 詳解Golang中g(shù)omock的使用場景和方法

    詳解Golang中g(shù)omock的使用場景和方法

    gomock是Go編程語言的模擬框架, 它與Go的內(nèi)置測試包很好地集成在一起,但也可以在其他上下文中使用,本文主要介紹了gomock的使用場景和方法,感興趣的可以了解下
    2024-10-10
  • Go函數(shù)使用(函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用等)

    Go函數(shù)使用(函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用等)

    本文主要介紹了Go函數(shù)使用,包括函數(shù)定義、函數(shù)聲明、函數(shù)調(diào)用、可變參數(shù)函數(shù)、匿名函數(shù)、遞歸函數(shù)、高階函數(shù)等,感興趣的可以了解一下
    2023-11-11
  • go?zero微服務(wù)實戰(zhàn)處理每秒上萬次的下單請求

    go?zero微服務(wù)實戰(zhàn)處理每秒上萬次的下單請求

    這篇文章主要為大家介紹了go?zero微服務(wù)實戰(zhàn)處理每秒上萬次的下單請求示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • GoLang中的iface?和?eface?的區(qū)別解析

    GoLang中的iface?和?eface?的區(qū)別解析

    iface 和 eface 都是 Go 中描述接口的底層結(jié)構(gòu)體,區(qū)別在于 iface 描述的接口包含方法,而 eface 則是不包含任何方法的空接口:interface{},這篇文章主要介紹了GoLang之iface?和?eface?的區(qū)別,需要的朋友可以參考下
    2022-09-09
  • go micro集成鏈路跟蹤的方法和中間件原理解析

    go micro集成鏈路跟蹤的方法和中間件原理解析

    這篇文章主要介紹了go-micro集成鏈路跟蹤的方法和中間件原理,關(guān)于Http或者說是Restful服務(wù)的鏈路跟蹤,go-micro的httpClient支持CallWrapper,可以用WrapCall來添加鏈路跟蹤的CallWrapper,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-05-05
  • 這些關(guān)于Go中interface{}的注意事項你都了解嗎

    這些關(guān)于Go中interface{}的注意事項你都了解嗎

    這篇文章主要為大家詳細介紹了學(xué)習(xí)Go語言時需要了解的interface{}注意事項,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • Go+Redis實現(xiàn)延遲隊列實操

    Go+Redis實現(xiàn)延遲隊列實操

    這篇文章主要介紹了Go+Redis實現(xiàn)延遲隊列實操,延遲隊列是一種非常使用的數(shù)據(jù)結(jié)構(gòu),我們經(jīng)常有需要延遲推送處理消息的場景,比如延遲60秒發(fā)送短信,延遲30分鐘關(guān)閉訂單,消息消費失敗延遲重試等
    2022-09-09
  • go語言日志記錄庫簡單使用方法實例分析

    go語言日志記錄庫簡單使用方法實例分析

    這篇文章主要介紹了go語言日志記錄庫簡單使用方法,實例分析了Go語言日志記錄的操作的技巧,需要的朋友可以參考下
    2015-03-03

最新評論

湖北省| 濉溪县| 卢湾区| 武功县| 武隆县| 乌兰县| 长兴县| 衡东县| 海丰县| 佛山市| 海阳市| 满洲里市| 鄂托克旗| 台北市| 固安县| 衡南县| 新巴尔虎左旗| 巫山县| 大田县| 逊克县| 五寨县| 石柱| 桦甸市| 抚顺市| 当雄县| 明溪县| 元谋县| 南昌市| 体育| 富顺县| 镇江市| 晴隆县| 扬中市| 筠连县| 灌南县| 高陵县| 四子王旗| 崇左市| 南溪县| 满洲里市| 灵川县|