Verma
Verma

Reputation: 303

How Can I upload All types of files (videos, audios, pdfs, zip) in cloudinary in django model ? and how can i delete them?

models.py

from django.db import models
from cloudinary.models import CloudinaryField

class File(models.Model):
    caption = models.TextField(blank=True)
    file = CloudinaryField()

    # trying to delete the File model and cloudinary file (error)
    def delete(self, *args, **kwargs):
        self.file.delete(*args, **kwargs)
        super().delete(*args, **kwargs)

settings.py

import cloudinary
import cloudinary.uploader
import cloudinary.api

...

INSTALLED_APPS = [
    '....',

    'myapp',
    'cloudinary',
]

...

cloudinary.config( 
  cloud_name = "...", 
  api_key = "...", 
  api_secret = "...",
  secure = True
)

i can upload images only, when i try to upload any (video, pdf, audio, zip) it says INVALID IMAGE FILE. and sometimes file size error occurs when image size exceeds 10 mb size limit.

This is The Error i am facing. (when i tried to upload a video file)

Error at /
Invalid image file
Request Method: POST
Request URL:    http://127.0.0.1:8000/
Django Version: 3.2.9
Exception Type: Error
Exception Value:    
Invalid image file
Exception Location: C:\Users\MIG 29\Desktop\Project\testCloudinary\vEnv\lib\site-packages\cloudinary\uploader.py, line 522, in call_api
Python Executable:  C:\Users\MIG 29\Desktop\Project\testCloudinary\vEnv\Scripts\python.exe
Python Version: 3.9.6
Python Path:    
['C:\\Users\\MIG 29\\Desktop\\Project\\testCloudinary',
 'c:\\users\\mig 29\\appdata\\local\\programs\\python\\python39\\python39.zip',
 'c:\\users\\mig 29\\appdata\\local\\programs\\python\\python39\\DLLs',
 'c:\\users\\mig 29\\appdata\\local\\programs\\python\\python39\\lib',
 'c:\\users\\mig 29\\appdata\\local\\programs\\python\\python39',
 'C:\\Users\\MIG 29\\Desktop\\Project\\testCloudinary\\vEnv',
 'C:\\Users\\MIG '
 '29\\Desktop\\Project\\testCloudinary\\vEnv\\lib\\site-packages']
Server time:    Sun, 05 Dec 2021 06:14:04 +0000

Upvotes: 2

Views: 1032

Answers (2)

Benie Langat
Benie Langat

Reputation: 1

This comes many months later, but I hope it helps someone out there.

So, in addition to the above answer, you can upload various file types by setting the resource type in your model field to:

image video raw or auto

For example: file = CloudinaryField(resource_type='raw')

I'm not sure how to delete the uploaded resource from the server-side, if that's what the second part of the inquiry was asking.

This resource: Upload API Reference | Cloudinary helped me.

Upvotes: 0

Verma
Verma

Reputation: 303

thank me, i just found the way to upload (images, videos, audios) too.. it goes like this. in models.py

file = CloudinaryField(resource_type='')

Upvotes: 3

Related Questions