com.atlassian.confluence.servlet.download
Class AttachmentDownload
java.lang.Object
com.atlassian.confluence.servlet.download.ServeAfterTransactionDownload
com.atlassian.confluence.servlet.download.AttachmentDownload
- All Implemented Interfaces:
- com.atlassian.plugin.servlet.DownloadStrategy
- Direct Known Subclasses:
- ThumbnailDownload
public class AttachmentDownload
- extends ServeAfterTransactionDownload
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AttachmentDownload
public AttachmentDownload()
matches
public boolean matches(String urlPath)
setDownloadResourceManager
public void setDownloadResourceManager(DownloadResourceManager downloadResourceManager)
setAttachmentUrlParser
public void setAttachmentUrlParser(AttachmentUrlParser attachmentUrlParser)
setMimeTypeTranslator
public void setMimeTypeTranslator(AttachmentMimeTypeTranslator mimeTypeTranslator)
setEventManager
public void setEventManager(EventManager eventManager)
getStreamForDownload
public InputStream getStreamForDownload(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws IOException
- Description copied from class:
ServeAfterTransactionDownload
- Get the input stream to serve to the client outside of the database transaction.
The inputstream must be useable outside of the database transaction that created it
- Specified by:
getStreamForDownload
in class ServeAfterTransactionDownload
- Returns:
- The input stream to serve, or null if nothing to serve.
- Throws:
IOException
getUrlPrefix
protected String getUrlPrefix()
setHeadersForAttachment
protected void setHeadersForAttachment(String name,
long contentLength,
String contentType,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
setFileNameHeader
protected void setFileNameHeader(HttpServletResponse httpServletResponse,
String downloadFileName,
String userAgent)
- We should be able to encode the filename header per RFC 2047, but no browsers currently support it.
So for non-ASCII filenames, we'll omit this header, and good browsers will use the filename
from the URL, for which they know the proper encoding.
MSIE will only understand a filename URL-encoded in the header, which is weird, but some user-agent
matching fixes that.