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  }