golang实现http server提供文件下载功能
2020-04-14 12:05
1436 查看
简介
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提供文件下载功能,希望对大家有所帮助!
您可能感兴趣的文章:
相关文章推荐
- golang语言实现的文件上传与文件下载功能示例
- Java实现文件下载功能
- [WMI实例]实现文件系统管理功能封装。提供共享文件和文件系统访问权限控制能力
- WebView实现文件下载功能
- jsp实现文件上传下载功能
- asp.net中实现文件下载功能
- jsp简单实现提供文件下载
- JSP实现点击链接后下载文件(相当于右键另存)功能
- [DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载)
- 用JSP来实现文件下载功能的几种方式
- asp.net中实现文件下载功能
- as 3.0 如何浏览文件,实现文件上传和下载功能。
- JavaWeb中struts2实现文件上传下载功能实例解析
- commons net jar包实现文件ftp上传和下载功能 (commons net ftp 使用1)
- java实现文件上传,文件下载功能 源码
- 用Visual C#实现文件下载功能
- Java实现文件下载功能
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能(续)
- 用Visual C#实现文件下载功能
- Silverlight 实现下载文件功能!