mirror of https://github.com/gogs/gogs.git
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
parent
76fabe8785
commit
1619317c3b
|
@ -5,7 +5,9 @@
|
||||||
package repo
|
package repo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"net/http"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"github.com/gogs/git-module"
|
"github.com/gogs/git-module"
|
||||||
|
@ -22,6 +24,12 @@ func ServeData(c *context.Context, name string, reader io.Reader) error {
|
||||||
buf = buf[:n]
|
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.IsTextFile(buf) {
|
||||||
if !tool.IsImageFile(buf) {
|
if !tool.IsImageFile(buf) {
|
||||||
c.Resp.Header().Set("Content-Disposition", "attachment; filename=\""+name+"\"")
|
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.Header().Set("Content-Type", "text/plain; charset=utf-8")
|
||||||
}
|
}
|
||||||
c.Resp.Write(buf)
|
c.Resp.Write(buf)
|
||||||
_, err := io.Copy(c.Resp, reader)
|
_, err = io.Copy(c.Resp, reader)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue