Confluence 3.3 のサポートは終了しています。
ドキュメントの最新バージョンを確認してください。
Code Changes Required
This configuration requires changing the Confluence code in your installation. You will need to reapply these changes whenever you upgrade Confluence. Proceed with caution.
At the moment, permissions for downloading attachments can't be set. To disable attachment downloading you need to edit your velocity files. Attachments can currently be downloaded in two separate ways: by viewing the attachments for a page, and by viewing all the attachments for a Space (Browse > Attachments).
These customisations will disable attachment downloads for all users, including administrators.
Attachments for a whole Space
To disable downloading attachments from a Space, you need to edit the listattachmentsforspace.vm file. Delete or comment out the following line
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> <a href="$req.contextPath$!attachment.downloadPathWithoutVersion">$generalUtil.shortenString($attachment.fileName, 50)</a></td>
and replace it with either of the following two code blocks:
Disabling downloading for all attachments
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> $generalUtil.shortenString($attachment.fileName, 50)</td>
Disabling downloading for specific file types
#set($disabledDownloads = ['ext1', 'ext2']) #set($disabled = false) #set($attachmentExtension = $attachment.fileExtension) <tr id="attachment_$!attachment.id"> #foreach($doNotDownload in $disabledDownloads) #if($attachmentExtension == $doNotDownload) #set($disabled = true) #break #end #end #if(!$disabled) <td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> <a href="$req.contextPath$!attachment.downloadPathWithoutVersion">$generalUtil.shortenString($attachment.fileName, 50)</a></td> #else <td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> $generalUtil.shortenString($attachment.fileName, 50)</td> #end
To specify which files you want disabled, change the
'ext1', 'ext2'
in the first line to the extensions for which you want to disable downloading. You can specify as many extensions as you want, as long as they are in quotes, are comma separated and do not include the '.' at the start. For example, if I did not want users to download .jpg and .doc and .png files, the line would read
#set($disabledDownloads = ['jpg', 'doc', 'png'])
Attachments for a specific page
If you take the steps in this section but not in the section above, the files you disable can still be downloaded by browsing all attachments for a Space.
To disable downloading attachments from a specific page, you need to edit the attachments-table.vm file. Delete or comment the line
<a class="filename" href="$generalUtil.htmlEncode("${req.contextPath}${attachment.downloadPathWithoutVersion}")" title="$generalUtil.htmlEncodeAndReplaceSpaces($attachment.fileName)" >$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))</a>
and replace it with either of the following two code blocks:
Disabling downloading for all attachments
$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))
Disabling downloading for specific file types
#set($disabledDownloads = ['ext1', 'ext2']) #set($disabled = false) #set($attachmentExtension = $attachment.fileExtension) #foreach($doNotDownload in $disabledDownloads) #if($attachmentExtension == $doNotDownload) #set($disabled = true) #break #end #end #if(!$disabled) <a class="filename" href="$generalUtil.htmlEncode("${req.contextPath}${attachment.downloadPathWithoutVersion}")" title="$generalUtil.htmlEncodeAndReplaceSpaces($attachment.fileName)" >$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))</a> #else $generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35)) #end
Again, to specify which files you want disabled, change the
'ext1', 'ext2'
in the first line to the extensions for which you want to disable downloading. You can specify as many extensions as you want, as long as they are in quotes, are comma separated and do not include the '.' at the start. For example, if I did not want users to download .jpg and .doc and .png files, the line would read
#set($disabledDownloads = ['jpg', 'doc', 'png'])
Removing the 'Download All' button
If you do not take the steps in this section, users will still be able to download all attachments for a page regardless of whether they have been disabled or not.
Delete or comment the following lines in viewattachments.vm
#if ($action.latestVersionsOfAttachments.size() > 1) <a id="download-all-link" class="dashboard-action dashboard-action-text dashboard-action-spacing" href="$req.contextPath/pages/downloadallattachments.action?pageId=$pageId" title="$action.getText('download.all.desc')">$action.getText('download.all')</a> #end