mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-05 04:56:02 +01:00
Include repository name and directory name in download filename
This commit is contained in:
@@ -1175,11 +1175,17 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val tarRe = """\.tar\.(gz|bz2|xz)$""".r
|
|
||||||
|
val suffix = path.split("/").lastOption.map("-" + _).getOrElse("")
|
||||||
|
val zipRe = """(.+)\.zip$""".r
|
||||||
|
val tarRe = """(.+)\.tar\.(gz|bz2|xz)$""".r
|
||||||
|
|
||||||
filename match {
|
filename match {
|
||||||
case name if name.endsWith(".zip") =>
|
case zipRe(branch) =>
|
||||||
response.setHeader("Content-Disposition", s"attachment; filename=${filename}")
|
response.setHeader(
|
||||||
|
"Content-Disposition",
|
||||||
|
s"attachment; filename=${repository.name}-${branch}${suffix}.zip"
|
||||||
|
)
|
||||||
contentType = "application/octet-stream"
|
contentType = "application/octet-stream"
|
||||||
response.setBufferSize(1024 * 1024);
|
response.setBufferSize(1024 * 1024);
|
||||||
using(new ZipArchiveOutputStream(response.getOutputStream)) { zip =>
|
using(new ZipArchiveOutputStream(response.getOutputStream)) { zip =>
|
||||||
@@ -1191,8 +1197,11 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
()
|
()
|
||||||
case tarRe(compressor) =>
|
case tarRe(branch, compressor) =>
|
||||||
response.setHeader("Content-Disposition", s"attachment; filename=${filename}")
|
response.setHeader(
|
||||||
|
"Content-Disposition",
|
||||||
|
s"attachment; filename=${repository.name}-${branch}${suffix}.tar.${compressor}"
|
||||||
|
)
|
||||||
contentType = "application/octet-stream"
|
contentType = "application/octet-stream"
|
||||||
response.setBufferSize(1024 * 1024)
|
response.setBufferSize(1024 * 1024)
|
||||||
using(compressor match {
|
using(compressor match {
|
||||||
|
|||||||
Reference in New Issue
Block a user