You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django CKEditor 5.3.1如何上传PDF等非图片文件?

解决django-ckeditor上传非图片文件(如PDF)的问题

针对你使用django-ckeditor5.3.1和Django1.11.2时无法上传PDF等非图片文件的问题,结合你的现有配置,我整理了以下解决步骤:

1. 确认基础配置已生效

你已经在settings.py中设置了CKEDITOR_ALLOW_NONIMAGE_FILES = True,这是允许非图片文件上传的核心开关,这一步没问题,接下来需要让编辑器工具栏显示对应的上传入口。

2. 调整工具栏配置,添加文件上传按钮

你的当前工具栏(toolbar_Simple)里缺少专门的非图片文件上传按钮,需要把FileUpload按钮添加到工具栏中。修改CKEDITOR_CONFIGS如下:

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'Simple',
        'toolbar_Simple': [
            ['Bold', 'Italic', 'Underline'],
            ['Link', 'Unlink', 'FileUpload'],  # 新增FileUpload按钮,用于上传PDF等非图片文件
            ['Image', 'Update', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'uploadwidget'],
        ],
        'autoParagraph': False,
        'shiftEnterMode': 2,
        'enterMode': 2,
        # 可选:添加这一行避免编辑器过滤掉文件链接
        'allowedContent': True,
    },
}

3. 重启服务并清除缓存

修改配置后,重启你的Django服务,然后清除浏览器缓存(避免旧的工具栏配置被缓存),再打开编辑器就能看到新增的FileUpload按钮了。点击这个按钮会弹出上传窗口,选择PDF等文件完成上传后,编辑器会自动插入文件的链接。

4. 额外检查项

  • 确保CKEDITOR_UPLOAD_PATH对应的uploads/目录有正确的读写权限,保证Django进程能正常写入文件。
  • 如果你需要用户权限控制,可根据需求设置CKEDITOR_RESTRICT_BY_USER = True(仅允许用户查看自己上传的文件),保持默认False则所有用户可查看全部上传文件。

内容的提问来源于stack exchange,提问作者user9192656

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:10:58