欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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如何優(yōu)雅的關(guān)閉goroutine協(xié)程

    Go如何優(yōu)雅的關(guān)閉goroutine協(xié)程

    本文將介紹首先為什么需要主動關(guān)閉goroutine,并介紹如何在Go語言中關(guān)閉goroutine的常見套路,包括傳遞終止信號和協(xié)程內(nèi)部捕捉終止信號,之后,文章列舉了需要主動關(guān)閉協(xié)程運行的常見場景,希望通過本文的介紹,讀者能夠掌握如何在適當(dāng)?shù)臅r候關(guān)閉goroutine
    2023-05-05
  • 一文帶你了解Go語言如何解析JSON

    一文帶你了解Go語言如何解析JSON

    本文將說明如何利用?Go?語言將?JSON?解析為結(jié)構(gòu)體和數(shù)組,如果解析?JSON?的嵌入對象,如何將?JSON?的自定義屬性名稱映射到結(jié)構(gòu)體,如何解析非結(jié)構(gòu)化的?JSON?字符串
    2023-01-01
  • 簡單談?wù)凣olang中的字符串與字節(jié)數(shù)組

    簡單談?wù)凣olang中的字符串與字節(jié)數(shù)組

    這篇文章主要給大家介紹了關(guān)于Golang中字符串與字節(jié)數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Golang具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Go語言中make和new函數(shù)的用法與區(qū)別

    Go語言中make和new函數(shù)的用法與區(qū)別

    這篇文章介紹了Go語言中make和new函數(shù)的用法與區(qū)別,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • goland 清除所有的默認(rèn)設(shè)置操作

    goland 清除所有的默認(rèn)設(shè)置操作

    這篇文章主要介紹了goland 清除所有的默認(rèn)設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 一百行Golang代碼實現(xiàn)簡單并發(fā)聊天室

    一百行Golang代碼實現(xiàn)簡單并發(fā)聊天室

    這篇文章主要為大家詳細(xì)介紹了一百行Golang代碼如何實現(xiàn)簡單并發(fā)聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 源碼分析Go語言使用cgo導(dǎo)致線程增長的原因

    源碼分析Go語言使用cgo導(dǎo)致線程增長的原因

    這篇文章主要從一個cgo調(diào)用開始解析Go語言源碼,從而分析一下造成線程增長的原因,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一學(xué)習(xí)一下
    2023-06-06
  • 詳解Go語言如何進行Http調(diào)用

    詳解Go語言如何進行Http調(diào)用

    無論是微服務(wù)還是單體架構(gòu)等,服務(wù)間都有相互通信的時候,而最直接的通信方法就是 HTTP 調(diào)用,本文將會介紹在 Go 語言里,如何進行 HTTP 調(diào)用,需要的可以參考一下
    2022-12-12
  • 深入了解Go語言中context的用法

    深入了解Go語言中context的用法

    這篇文章主要為大家詳細(xì)介紹了Go語言中context用法的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • Golang實現(xiàn)的聊天程序服務(wù)端和客戶端代碼分享

    Golang實現(xiàn)的聊天程序服務(wù)端和客戶端代碼分享

    這篇文章主要介紹了Golang實現(xiàn)的聊天程序服務(wù)端和客戶端代碼分享,本文先是講解了實現(xiàn)邏輯,然后給出了實現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10

最新評論