repo/download: add Last-Modified response header (#5827)

* repo/download: Add Last-Modified response header

ref: https://github.com/gogs/gogs/issues/5811

* Update download.go


Co-authored-by: Unknwon <u@gogs.io>
pull/5839/head
Frode Aannevik 2019-10-20 02:26:56 +02:00 committed by Unknwon
parent 76fabe8785
commit 1619317c3b
1 changed files with 9 additions and 1 deletions

View File

@ -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
}