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
Method Summary |
java.io.InputStream |
getStreamForDownload(javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
Get the input stream to serve to the client outside of the database transaction. |
protected java.lang.String |
getUrlPrefix()
|
boolean |
matches(java.lang.String urlPath)
|
void |
setAttachmentUrlParser(AttachmentUrlParser attachmentUrlParser)
|
void |
setDownloadResourceManager(DownloadResourceManager downloadResourceManager)
|
void |
setEventManager(com.atlassian.event.EventManager eventManager)
|
protected void |
setFileNameHeader(javax.servlet.http.HttpServletResponse httpServletResponse,
java.lang.String downloadFileName,
java.lang.String userAgent)
We should be able to encode the filename header per RFC 2047, but no browsers currently support it. |
protected void |
setHeadersForAttachment(java.lang.String name,
long contentLength,
java.lang.String contentType,
javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
|
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(java.lang.String urlPath)
setDownloadResourceManager
public void setDownloadResourceManager(DownloadResourceManager downloadResourceManager)
setAttachmentUrlParser
public void setAttachmentUrlParser(AttachmentUrlParser attachmentUrlParser)
setEventManager
public void setEventManager(com.atlassian.event.EventManager eventManager)
getStreamForDownload
public java.io.InputStream getStreamForDownload(javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
throws java.io.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:
java.io.IOException
getUrlPrefix
protected java.lang.String getUrlPrefix()
setHeadersForAttachment
protected void setHeadersForAttachment(java.lang.String name,
long contentLength,
java.lang.String contentType,
javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
setFileNameHeader
protected void setFileNameHeader(javax.servlet.http.HttpServletResponse httpServletResponse,
java.lang.String downloadFileName,
java.lang.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.
Copyright © 2003-2009 Atlassian Pty Ltd. All Rights Reserved.