From 8e66aa4314f8e6507c5e9a0530e4a8a7f4393d3d Mon Sep 17 00:00:00 2001 From: dre Date: Sat, 10 Jul 2021 12:26:55 +0800 Subject: [PATCH] fix fileserver parent dir with trailing slash --- fileserver/fileserver.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fileserver/fileserver.go b/fileserver/fileserver.go index e2e67ad..5869f3b 100644 --- a/fileserver/fileserver.go +++ b/fileserver/fileserver.go @@ -80,6 +80,7 @@ func readFile(filepath string) ([]byte, string, error) { return nil, "", fmt.Errorf("file: %w", err) } defer file.Close() + data, err := ioutil.ReadAll(file) if err != nil { return nil, "", fmt.Errorf("read: %w", err) @@ -101,14 +102,15 @@ func listDirectory(fullpath, relpath string) ([]byte, string, error) { } var out []byte - parent := filepath.Dir(relpath) + idx := strings.TrimRight(relpath, "/") + parent := filepath.Dir(idx) if relpath != "/" { - idx := strings.TrimRight(relpath, "/") out = append(out, []byte(fmt.Sprintf("Index of %s/\n\n", idx))...) out = append(out, []byte(fmt.Sprintf("=> %s ..\n", parent))...) } else { out = append(out, []byte(fmt.Sprintf("Index of %s\n\n", relpath))...) } + for _, f := range files { if relpath == "/" { out = append(out, []byte(fmt.Sprintf("=> %s\n", f.Name()))...)