在plone 4.3中,我在plone4.3 at_download中编写了一些代码。当人们访问包含“at_download”的URL时,它们将被阻止。但是当点击该网址时不包含“at_download”时,他们也可以下载该文件。
感谢。
我使用documentviewer来显示.doc .pdf .ppt,我只是想让他们用文档查看器查看文件。但是不能从url下载文件。
答案 0 :(得分:1)
不确定这是否可行,但您也可以尝试更改内容上“文件”字段的read_permission
。
但可能这也会隐藏文件预览(或破坏模板,在这种情况下你必须修复它)。
答案 1 :(得分:0)
为了确保没有人能够获取您的文件,我想最好的方法是创建自己的FileField并修改index_html
方法
您必须创建自己的基于ATFile的内容类型 如果要使用此类型而不是默认的plone文件
使用您自己的file
CustomFileField
字段
醇>
您的FileField可能看起来像......
from plone.app.blob import field
class CustomFileField(field.FileField):
def index_html(self, instance, REQUEST=None, RESPONSE=None,
no_output=False, disposition=None):
"""Docstring"""
if self.has_permission_to_download():
# Default behaviour
super(CustomFileField, self).index_html(
instance,
REQUEST=None,
RESPONSE=None,
no_output=False,
disposition=None)
else:
# Your code if the user does not have the permission
raise WhatEverYouWant
def has_permission_to_download(self):
"""Do your permission check"""
return bool()
捷径将是一个猴子补丁,但我不建议这样做。