亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

golang實現(xiàn)http server提供文件下載功能

 更新時間:2020年02月12日 10:14:56   作者:CodingCode ·  
這篇文章主要介紹了golang實現(xiàn)http server提供文件下載功能,本文給大家簡單介紹了Golang的相關知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

簡介

Go(又稱Golang)是Google開發(fā)的一種靜態(tài)強類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言。

羅伯特·格瑞史莫(Robert Griesemer),羅勃·派克(Rob Pike)及肯·湯普遜(Ken Thompson)于2007年9月開始設計Go,稍后Ian Lance Taylor、Russ Cox加入項目。Go是基于Inferno操作系統(tǒng)所開發(fā)的。Go于2009年11月正式宣布推出,成為開放源代碼項目,并在Linux及Mac OS X平臺上進行了實現(xiàn),后來追加了Windows系統(tǒng)下的實現(xiàn)。在2016年,Go被軟件評價公司TIOBE 選為“TIOBE 2016 年最佳語言”。 目前,Go每半年發(fā)布一個二級版本(即從a.x升級到a.y)。

go就是golang 全名是 golang 簡稱go語言

golang實現(xiàn)http server提供文件下載功能,具體代碼如下所示:

func FileDownload(w http.ResponseWriter, r *http.Request) {
  filename := get_filename_from_request(r)

  file, _ := os.Open(filename)
  defer file.Close()

  fileHeader := make([]byte, 512)
  file.Read(fileHeader)

  fileStat, _ := file.Stat()

  w.Header().Set("Content-Disposition", "attachment; filename=" + filename)
  w.Header().Set("Content-Type", http.DetectContentType(fileHeader))
  w.Header().Set("Content-Length", strconv.FormatInt(fileStat.Size(), 10))

  file.Seek(0, 0)
  io.Copy(w, file)

  return
}

ps:下面看下golang最簡單的http server

簡單的hello world

package main
import (
 "fmt"
 "io"
 "net/http"
)
func main() {
 http.HandleFunc("/", helloWorld)
 e:=http.ListenAndServe(":8888",nil)
 if e!=nil{
 fmt.Println(e.Error())
 }
}
func helloWorld(w http.ResponseWriter, r *http.Request) {
 str:="Hello World"
 n,e:=io.WriteString(w, str)
 if e!=nil{
 fmt.Println(e.Error())
 } else {
 fmt.Println(n," " ,len(str))
 }
}

總結

以上所述是小編給大家介紹的golang實現(xiàn)http server提供文件下載功能,希望對大家有所幫助!

相關文章

  • 通過案例簡單聊聊為什么說Go中的字符串是不能被修改的

    通過案例簡單聊聊為什么說Go中的字符串是不能被修改的

    在接觸Go這么語言,可能你經常會聽到這樣一句話,對于字符串不能修改,可能你很納悶,日常開發(fā)中我們對字符串進行修改也是很正常的,為什么又說Go中的字符串不能進行修改呢,本文就來通過實際案例給大家演示,為什么Go中的字符串不能進行修改
    2023-07-07
  • 利用Go語言追加內容到文件末尾

    利用Go語言追加內容到文件末尾

    關于Go語言讀寫文件,網上很多教程了,但是今天有個需求,想要把內容追加寫到文件末尾,在網上找了很久才找到答案,現(xiàn)在分享給大家,有需要的可以參考借鑒。
    2016-09-09
  • Go語言使用Request,Response處理web頁面請求

    Go語言使用Request,Response處理web頁面請求

    這篇文章主要介紹了Go語言使用Request,Response處理web頁面請求,需要的朋友可以參考下
    2022-04-04
  • 解讀go在遍歷map過程中刪除成員是否安全

    解讀go在遍歷map過程中刪除成員是否安全

    在Go語言中,通過for range遍歷map時可以安全地刪除當前遍歷到的元素,因為遍歷過程中的刪除操作不會影響遍歷的進行,但需要注意,遍歷順序是不確定的,刪除元素不會導致程序錯誤,但可能會影響剩余元素的遍歷順序,在多線程環(huán)境下
    2024-09-09
  • Golang使用gob實現(xiàn)結構體的序列化過程詳解

    Golang使用gob實現(xiàn)結構體的序列化過程詳解

    Golang struct類型數(shù)據序列化用于網絡傳輸數(shù)據或在磁盤上寫入數(shù)據。在分布式系統(tǒng)中,一端生成數(shù)據、然后序列化、壓縮和發(fā)送;在另一端,接收數(shù)據、然后解壓縮、反序列化和處理數(shù)據,整個過程必須快速有效
    2023-03-03
  • go單例實現(xiàn)雙重檢測是否安全的示例代碼

    go單例實現(xiàn)雙重檢測是否安全的示例代碼

    這篇文章主要介紹了go單例實現(xiàn)雙重檢測是否安全,本文給大家分享雙重檢驗示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • go語言中的defer關鍵字

    go語言中的defer關鍵字

    這篇文章介紹了go語言中的defer關鍵字,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Go type關鍵字(類型定義與類型別名的使用差異)用法實例探究

    Go type關鍵字(類型定義與類型別名的使用差異)用法實例探究

    這篇文章主要為大家介紹了Go type關鍵字(類型定義與類型別名的使用差異)用法實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go語言使用釘釘機器人推送消息的實現(xiàn)示例

    Go語言使用釘釘機器人推送消息的實現(xiàn)示例

    本文主要介紹了Go語言使用釘釘機器人推送消息的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 使用Go語言編寫簡潔代碼的最佳實踐

    使用Go語言編寫簡潔代碼的最佳實踐

    簡潔的代碼對于創(chuàng)建可維護、可閱讀和高效的軟件至關重要,Go 是一種強調簡單和代碼整潔的語言,在本文中,我們將結合代碼示例,探討編寫簡潔 Go 代碼的最佳實踐,需要的朋友可以參考下
    2023-09-09

最新評論