From f4ab50501ebc3d216dd216c72f5f8ff53fa6efc1 Mon Sep 17 00:00:00 2001 From: Kim Carlbäcker Date: Tue, 12 Jul 2016 00:21:26 +0200 Subject: [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 --- routers/repo/view.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'routers/repo/view.go') diff --git a/routers/repo/view.go b/routers/repo/view.go index 65ca6778..e787879d 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 + } } } } -- cgit v1.2.3