91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang實現http server提供文件下載功能

發布時間:2020-10-17 08:05:02 來源:腳本之家 閱讀:541 作者:CodingCode · 欄目:編程語言

簡介

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

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

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

golang實現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實現http server提供文件下載功能,希望對大家有所幫助!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威宁| 博湖县| 皮山县| 德惠市| 广汉市| 来安县| 米易县| 上虞市| 井陉县| 廉江市| 工布江达县| 芦山县| 荆州市| 尼勒克县| 偃师市| 米脂县| 鹤山市| 舟曲县| 焦作市| 阿坝县| 青川县| 盈江县| 嘉义县| 黄平县| 高唐县| 苍南县| 东丰县| 库尔勒市| 茶陵县| 杨浦区| 兴海县| 莱芜市| 喀什市| 铅山县| 泽州县| 遵义县| 吉林市| 武陟县| 浪卡子县| 龙井市| 旺苍县|