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

Django集成Cloudinary实现全类型文件上传删除及上传报错解决

问题解决方案

1. 非图片格式上传报错(INVALID IMAGE FILE)解决

出现该报错的核心原因是CloudinaryField默认仅校验接受图片类型的资源,需要手动指定资源类型为自动识别:
修改models.py中的file字段定义:

file = CloudinaryField(
    resource_type='auto', # 自动识别视频、音频、文档、压缩包等所有资源类型
)

2. 文件大小超限报错解决

默认Cloudinary对单文件上传的阈值限制较低,同时默认未开启大文件分片上传能力,修改字段定义添加分片配置即可:

file = CloudinaryField(
    resource_type='auto',
    upload_options={
        "chunk_size": 6 * 1024 * 1024, # 超过6MB的文件自动分片上传,突破单文件大小限制
        # 可选配置:限定允许上传的格式,避免恶意文件上传
        "allowed_formats": ["jpg", "jpeg", "png", "gif", "mp4", "mov", "mp3", "wav", "pdf", "zip", "rar"]
    }
)

注意:如果使用Cloudinary免费版,本身有资源额度限制:单张图片最大25MB、单份非媒体类文件(PDF/ZIP等)最大20MB、单个视频最大100MB,超出该额度的文件需要升级Cloudinary套餐才能上传。

3. 实例删除时云端文件同步删除报错解决

之前的写法将Django模型delete方法的参数直接传入了Cloudinary文件删除接口,两个接口的参数规则不匹配,修改delete方法如下即可:

def delete(self, *args, **kwargs):
    # invalidate=True 同时清除Cloudinary CDN中该文件的缓存
    self.file.delete(invalidate=True)
    super().delete(*args, **kwargs)

其他注意事项

前端提交文件的表单必须添加enctype="multipart/form-data"属性,否则文件无法正常上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:15:03