diff --git a/src/main/scala/app/RepositoryViewerController.scala b/src/main/scala/app/RepositoryViewerController.scala index d68dc53..9191862 100644 --- a/src/main/scala/app/RepositoryViewerController.scala +++ b/src/main/scala/app/RepositoryViewerController.scala @@ -181,8 +181,8 @@ /** * Download repository contents as an archive. */ - get("/:owner/:repository/archive/:name")(referrersOnly { repository => - val name = params("name") + get("/:owner/:repository/archive/*")(referrersOnly { repository => + val name = multiParams("splat").head if(name.endsWith(".zip")){ val revision = name.replaceFirst("\\.zip$", "") @@ -193,7 +193,7 @@ workDir.mkdirs val zipFile = new File(workDir, repository.name + "-" + - (if(revision.length == 40) revision.substring(0, 10) else revision) + ".zip") + (if(revision.length == 40) revision.substring(0, 10) else revision).replace('/', '_') + ".zip") using(Git.open(getRepositoryDir(repository.owner, repository.name))){ git => val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(revision))