diff --git a/build.sbt b/build.sbt index 547d302c4..60f534e84 100644 --- a/build.sbt +++ b/build.sbt @@ -49,6 +49,7 @@ libraryDependencies ++= Seq( "com.github.bkromhout" % "java-diff-utils" % "2.1.1", "org.cache2k" % "cache2k-all" % "1.0.0.CR1", "com.enragedginger" %% "akka-quartz-scheduler" % "1.4.0-akka-2.3.x" exclude("c3p0","c3p0"), + "net.coobird" % "thumbnailator" % "0.4.8", "org.eclipse.jetty" % "jetty-webapp" % JettyVersion % "provided", "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided", "junit" % "junit" % "4.12" % "test", diff --git a/src/main/scala/gitbucket/core/controller/ControllerBase.scala b/src/main/scala/gitbucket/core/controller/ControllerBase.scala index 5db473f77..0af53cccf 100644 --- a/src/main/scala/gitbucket/core/controller/ControllerBase.scala +++ b/src/main/scala/gitbucket/core/controller/ControllerBase.scala @@ -20,6 +20,8 @@ import javax.servlet.{FilterChain, ServletResponse, ServletRequest} import scala.util.Try +import net.coobird.thumbnailator.Thumbnails + /** * Provides generic features for controller implementations. @@ -225,10 +227,9 @@ trait AccountManagementControllerBase extends ControllerBase { } else { fileId.map { fileId => val filename = "avatar." + FileUtil.getExtension(session.getAndRemove(Keys.Session.Upload(fileId)).get) - FileUtils.moveFile( - new java.io.File(getTemporaryDir(session.getId), fileId), - new java.io.File(getUserUploadDir(userName), filename) - ) + Thumbnails.of(new java.io.File(getTemporaryDir(session.getId), fileId)) + .size(324, 324) + .toFile(new java.io.File(getUserUploadDir(userName), filename)) updateAvatarImage(userName, Some(filename)) } }