diff options
author | Kim Carlbäcker <kim.carlbacker@gmail.com> | 2016-07-12 00:21:26 +0200 |
---|---|---|
committer | 无闻 <u@gogs.io> | 2016-07-12 06:21:26 +0800 |
commit | f4ab50501ebc3d216dd216c72f5f8ff53fa6efc1 (patch) | |
tree | 787acd1bf0d3a69c348c509a299e27995b094190 /routers/repo/view.go | |
parent | de10387f41c02aef2d97ca5f247a422f18e6fb38 (diff) | |
download | gitea-f4ab50501ebc3d216dd216c72f5f8ff53fa6efc1.tar.gz gitea-f4ab50501ebc3d216dd216c72f5f8ff53fa6efc1.zip |
[Fix] Don't display way too large files #1513 (#3253)
* Add MaxDisplayFileSize setting
* Don't show files that are too large
* Localized FileTooLarge
* Change IsFileTooBig => IsFileTooLarge
Diffstat (limited to 'routers/repo/view.go')
-rw-r--r-- | routers/repo/view.go | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/routers/repo/view.go b/routers/repo/view.go index 65ca677867..e787879d86 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -19,6 +19,7 @@ import ( "github.com/gogits/gogs/modules/context" "github.com/gogits/gogs/modules/log" "github.com/gogits/gogs/modules/markdown" + "github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/template" "github.com/gogits/gogs/modules/template/highlight" ) @@ -104,20 +105,25 @@ func Home(ctx *context.Context) { case isImageFile: ctx.Data["IsImageFile"] = true case isTextFile: - d, _ := ioutil.ReadAll(dataRc) - buf = append(buf, d...) - readmeExist := markdown.IsMarkdownFile(blob.Name()) || markdown.IsReadmeFile(blob.Name()) - ctx.Data["ReadmeExist"] = readmeExist - if readmeExist { - ctx.Data["FileContent"] = string(markdown.Render(buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas())) + if blob.Size() >= setting.MaxDisplayFileSize { + ctx.Data["IsFileTooLarge"] = true } else { - if err, content := template.ToUtf8WithErr(buf); err != nil { - if err != nil { - log.Error(4, "Convert content encoding: %s", err) - } - ctx.Data["FileContent"] = string(buf) + ctx.Data["IsFileTooLarge"] = false + d, _ := ioutil.ReadAll(dataRc) + buf = append(buf, d...) + readmeExist := markdown.IsMarkdownFile(blob.Name()) || markdown.IsReadmeFile(blob.Name()) + ctx.Data["ReadmeExist"] = readmeExist + if readmeExist { + ctx.Data["FileContent"] = string(markdown.Render(buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas())) } else { - ctx.Data["FileContent"] = content + if err, content := template.ToUtf8WithErr(buf); err != nil { + if err != nil { + log.Error(4, "Convert content encoding: %s", err) + } + ctx.Data["FileContent"] = string(buf) + } else { + ctx.Data["FileContent"] = content + } } } } |