您好,登錄后才能下訂單哦!
簡介
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提供文件下載功能,希望對大家有所幫助!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。