1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.web.WebInterface
4 import net.pterodactylus.sone.web.page.FreenetPage
5 import net.pterodactylus.sone.web.page.FreenetRequest
6 import net.pterodactylus.util.web.Response
8 import javax.inject.Inject
11 * Page that delivers a {@link TemporaryImage} to the browser.
13 class GetImagePage @Inject constructor(webInterface: WebInterface): FreenetPage {
15 private val core = webInterface.core
17 override fun getPath(): String {
18 return "getImage.html"
21 override fun isPrefixPage(): Boolean {
25 override fun handleRequest(request: FreenetRequest, response: Response): Response {
26 val image = core.getTemporaryImage(request.httpRequest.getParam("image")) ?: return response.apply {
28 statusText = "Not found."
29 contentType = "text/html; charset=utf-8"
31 return response.apply {
33 contentType = image.mimeType
34 content.write(image.imageData)
35 addHeader("Content-Disposition", "attachment; filename=${image.id}.${image.mimeType.split('/')[1]}")
39 override fun isLinkExcepted(link: URI?): Boolean {