diff options
-rw-r--r-- | routes/repo/download.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/routes/repo/download.go b/routes/repo/download.go index 272669c8..b11baa69 100644 --- a/routes/repo/download.go +++ b/routes/repo/download.go @@ -5,7 +5,9 @@ package repo import ( + "fmt" "io" + "net/http" "path" "github.com/gogs/git-module" @@ -22,6 +24,12 @@ func ServeData(c *context.Context, name string, reader io.Reader) error { buf = buf[:n] } + commit, err := c.Repo.Commit.GetCommitByPath(c.Repo.TreePath) + if err != nil { + return fmt.Errorf("GetCommitByPath: %v", err) + } + c.Resp.Header().Set("Last-Modified", commit.Committer.When.Format(http.TimeFormat)) + if !tool.IsTextFile(buf) { if !tool.IsImageFile(buf) { c.Resp.Header().Set("Content-Disposition", "attachment; filename=\""+name+"\"") @@ -31,7 +39,7 @@ func ServeData(c *context.Context, name string, reader io.Reader) error { c.Resp.Header().Set("Content-Type", "text/plain; charset=utf-8") } c.Resp.Write(buf) - _, err := io.Copy(c.Resp, reader) + _, err = io.Copy(c.Resp, reader) return err } |