github.com/aarzilli/tools@v0.0.0-20151123112009-0d27094f75e0/os/fsi/httpfs/dir.go (about) 1 package httpfs 2 3 import ( 4 "errors" 5 "net/http" 6 "path" 7 filepath "path" //"path/filepath" 8 "strings" 9 ) 10 11 type httpDir struct { 12 basePath string 13 fs HttpFs 14 } 15 16 func (d httpDir) Open(name string) (http.File, error) { 17 if strings.Contains(name, "\x00") { 18 return nil, errors.New("http: invalid character in file path") 19 } 20 dir := string(d.basePath) 21 if dir == "" { 22 dir = "." 23 } 24 25 // jpath := filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name))) 26 jpath := filepath.Join(dir, path.Clean("/"+name)) 27 f, err := d.fs.Open(jpath) 28 if err != nil { 29 // log.Printf(" httpdir open %-22v Err %v", jpath, err) 30 return nil, err 31 } 32 // log.Printf(" httpdir open %-22v Success", jpath) 33 return f, nil 34 }