django filebrowser 扩展问题

1 投票
1 回答
1717 浏览
提问于 2025-04-15 21:43

我把django filebrowser的调试模式设置成了True,并在模型里写了文件扩展名的限制。

比如,我定义了一个叫pdf的字段,内容是这样的:FileBrowseField("PDF", max_length=200, directory="documents/", extensions=['.pdf', '.doc', '.txt'], format='Document', blank=True, null=True)。

在django的管理后台里,这些信息显示得很正确,像这样:

目录是documents/

允许的扩展名有['.pdf', '.doc', '.txt']

格式是Document。

但是当我调用filebrowser的时候,它却允许上传所有类型的文件。

我该怎么做才能限制filebrowser只上传我想要的特定文件类型呢?

谢谢大家!

1 个回答

1

在filebrowser/fb_settings文件中,把它们定义为一个叫做EXTENSIONS的字典。

EXTENSIONS = {
    'Folder':[''],
    'Image':['.jpg', '.jpeg', '.gif','.png','.tif','.tiff'],
    'Zip':['.zip', '.rar'],
    'Video':['.mov','.wmv','.mpeg','.mpg','.avi','.rm'],
    'Document':['.pdf','.doc','.rtf','.txt','.xls','.csv'],
    'Sound':['.mp3','.mp4','.wav','.aiff','.midi'],
    'Code':['.html','.py','.js','.css']
}

补充:如果你想在你的FileBrowserField中使用它:

pdf = FileBrowseField("PDF", max_length=200, initial_directory="documents/", extensions_allowed={'Documents':['.pdf', '.doc', '.txt']}, format="Documents", blank=True, null=True)

撰写回答