编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Go语言Web编程,2行代码制作1个在线文件系统

wxchong 2024-07-25 13:32:37 开源技术 17 ℃ 0 评论

第1种方法 http.ServeFile

9行:http.ServeFile一共需要3个参数,第一个参数是ResponseWriter,第二个参数是*Request,第三个参数是string,推荐使用filepath.Join("www", request.URL.Path)进行路径拼接。

ServeFile响应的请求必须包含已命名文件或目录。如果第三个参数是相对路径的文件名或目录,那么就是当前目录,也可以使用上级目录,但是通常并不会这么使用。

为了文件系统的安全,ServeFile不支持包含".."路径的r.URL.Path请求,推荐使用filepath.Join(文件夹, r.URL.Path)写法。

12行:ListenAndServe的参数有2个,第一个参数是监听的网络地址(包括端口号),协议是tcp,第二个参数是需要调用的handler,由该handler处理接收的请求。如果使用nil,那么就是默认的handler,默认的handler是DefaultServeMux

第二种方法 http.FileServer

这种方法更简便

9行:ListenAndServe的参数有2个,第一个参数是监听的网络地址(包括端口号),协议是tcp,第二个参数是需要调用的handler,由该handler处理接收的请求。如果使用nil,那么就是默认的handler,默认的handler是DefaultServeMux。

这里我们不传入默认的handler,传入一个http.FileServer,需要传出1个参数。

FileServer返回包含文件系统的内容在根目录下一个处理HTTP请求的handler。

实现操作系统的文件系统,就需要使用http.Dir。

例如:http.Handle("/", http.FileServer(http.Dir("/tmp")))

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表