为了账号安全,请及时绑定邮箱和手机立即绑定

go - 从 http 中的 zip 文件提供内容

go - 从 http 中的 zip 文件提供内容

Go
慕虎7371278 2021-08-30 17:09:54
我正在考虑github.com/remyoudompheng/go-misc/zipfs从 http 中的 zip 文件提供内容。这个最小的例子有效,我可以得到一个包含在files/archives.zip 中的 {FILE} : http://localhost:8080/zip/{FILE}package mainimport (    "archive/zip"    "github.com/remyoudompheng/go-misc/zipfs"    "log"    "net/http")func main() {    z, err := zip.OpenReader("files/archive.zip")    if err != nil {        log.Fatal(err)    }    defer z.Close()    http.Handle("/zip/", http.StripPrefix("/zip/", http.FileServer(zipfs.NewZipFS(&z.Reader))))    log.Fatal(http.ListenAndServe(":8080", nil))}现在,假设我想要一些像 我正在尝试注册一个函数但不起作用的东西http://localhost:8080/zip/{ZIPFILE}/{FILE}package mainimport (    "archive/zip"    "github.com/remyoudompheng/go-misc/zipfs"    "html"    "log"    "net/http"    "strings")func servezip(res http.ResponseWriter, req *http.Request) {    zippath := "files/" + strings.Split(html.EscapeString(req.URL.Path), "/")[2] + ".zip"    z, err := zip.OpenReader(zippath)    if err != nil {        http.Error(res, err.Error(), 404)        return    }    defer z.Close()    http.StripPrefix("/zip/", http.FileServer(zipfs.NewZipFS(&z.Reader)))}func main() {    http.HandleFunc("/zip/", servezip)    log.Fatal(http.ListenAndServe(":8080", nil))}我错过了什么?一个handlefunc 可以返回一个http.fileserver 吗?
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 236 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信