diff options
author | Unknwon <joe2010xtmf@163.com> | 2014-07-26 00:24:27 -0400 |
---|---|---|
committer | Unknwon <joe2010xtmf@163.com> | 2014-07-26 00:24:27 -0400 |
commit | 8dd07c0ddd99ae626a1ec8c06f75f27fed51269f (patch) | |
tree | 261d3c9911dabc58c1ac54e4e36b3dee24d2032b /routers/repo/download.go | |
parent | 0a739cf9ac901f54484c34bba8322418dedb09b0 (diff) | |
download | gitea-8dd07c0ddd99ae626a1ec8c06f75f27fed51269f.tar.gz gitea-8dd07c0ddd99ae626a1ec8c06f75f27fed51269f.zip |
New UI merge in progress
Diffstat (limited to 'routers/repo/download.go')
-rw-r--r-- | routers/repo/download.go | 131 |
1 files changed, 40 insertions, 91 deletions
diff --git a/routers/repo/download.go b/routers/repo/download.go index 7e20b0e095..42bce2b1ff 100644 --- a/routers/repo/download.go +++ b/routers/repo/download.go @@ -5,101 +5,50 @@ package repo import ( - "io" - "os" - "path/filepath" + // "io" + // "os" + // "path/filepath" - "github.com/Unknwon/com" - "github.com/go-martini/martini" + // "github.com/Unknwon/com" - "github.com/gogits/git" + // "github.com/gogits/git" - "github.com/gogits/gogs/modules/base" + // "github.com/gogits/gogs/modules/base" "github.com/gogits/gogs/modules/middleware" ) -func SingleDownload(ctx *middleware.Context, params martini.Params) { - treename := params["_1"] - - blob, err := ctx.Repo.Commit.GetBlobByPath(treename) - if err != nil { - ctx.Handle(500, "repo.SingleDownload(GetBlobByPath)", err) - return - } - - dataRc, err := blob.Data() - if err != nil { - ctx.Handle(500, "repo.SingleDownload(Data)", err) - return - } - - buf := make([]byte, 1024) - n, _ := dataRc.Read(buf) - if n > 0 { - buf = buf[:n] - } - - defer func() { - dataRc.Close() - }() - - contentType, isTextFile := base.IsTextFile(buf) - _, isImageFile := base.IsImageFile(buf) - ctx.Res.Header().Set("Content-Type", contentType) - if !isTextFile && !isImageFile { - ctx.Res.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(treename)) - ctx.Res.Header().Set("Content-Transfer-Encoding", "binary") - } - ctx.Res.Write(buf) - io.Copy(ctx.Res, dataRc) -} - -func ZipDownload(ctx *middleware.Context, params martini.Params) { - commitId := ctx.Repo.CommitId - archivesPath := filepath.Join(ctx.Repo.GitRepo.Path, "archives/zip") - if !com.IsDir(archivesPath) { - if err := os.MkdirAll(archivesPath, 0755); err != nil { - ctx.Handle(500, "ZipDownload -> os.Mkdir(archivesPath)", err) - return - } - } - - archivePath := filepath.Join(archivesPath, commitId+".zip") - - if com.IsFile(archivePath) { - ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".zip") - return - } - - if err := ctx.Repo.Commit.CreateArchive(archivePath, git.AT_ZIP); err != nil { - ctx.Handle(500, "ZipDownload -> CreateArchive "+archivePath, err) - return - } - - ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".zip") -} - -func TarGzDownload(ctx *middleware.Context, params martini.Params) { - commitId := ctx.Repo.CommitId - archivesPath := filepath.Join(ctx.Repo.GitRepo.Path, "archives/targz") - if !com.IsDir(archivesPath) { - if err := os.MkdirAll(archivesPath, 0755); err != nil { - ctx.Handle(500, "TarGzDownload -> os.Mkdir(archivesPath)", err) - return - } - } - - archivePath := filepath.Join(archivesPath, commitId+".tar.gz") - - if com.IsFile(archivePath) { - ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".tar.gz") - return - } - - if err := ctx.Repo.Commit.CreateArchive(archivePath, git.AT_TARGZ); err != nil { - ctx.Handle(500, "TarGzDownload -> CreateArchive "+archivePath, err) - return - } - - ctx.ServeFile(archivePath, ctx.Repo.Repository.Name+".tar.gz") +func SingleDownload(ctx *middleware.Context) { + // treename := params["_1"] + + // blob, err := ctx.Repo.Commit.GetBlobByPath(treename) + // if err != nil { + // ctx.Handle(500, "repo.SingleDownload(GetBlobByPath)", err) + // return + // } + + // dataRc, err := blob.Data() + // if err != nil { + // ctx.Handle(500, "repo.SingleDownload(Data)", err) + // return + // } + + // buf := make([]byte, 1024) + // n, _ := dataRc.Read(buf) + // if n > 0 { + // buf = buf[:n] + // } + + // defer func() { + // dataRc.Close() + // }() + + // contentType, isTextFile := base.IsTextFile(buf) + // _, isImageFile := base.IsImageFile(buf) + // ctx.Res.Header().Set("Content-Type", contentType) + // if !isTextFile && !isImageFile { + // ctx.Res.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(treename)) + // ctx.Res.Header().Set("Content-Transfer-Encoding", "binary") + // } + // ctx.Res.Write(buf) + // io.Copy(ctx.Res, dataRc) } |