Days
Hours
Minutes
Seconds
x

Froala Editor v4.1.4 is Here LEARN MORE

Skip to content

Python SDK File Reference

upload (req, fileRoute, options)

Returns: Dictionary

Method used to upload file to the specified location on disk.

Parameters:


  • req

    The Python SDK contains 3 adapters (Django, Flask and Pyramid) and you can create your custom adapter by implementing BaseAdapter class:

    # Django adapter example.
    
    from froala_editor import BaseAdapter
    
    class DjangoAdapter(BaseAdapter):
    """
    Django Adapter: Check BaseAdapter to see what methods description.
    """
    
    def checkFile(self, fieldname):
      if fieldname not in self.request.FILES:
        raise Exception("File does not exist.")
    
    def getFilename(self, fieldname):
      self.checkFile(fieldname)
      return self.request.FILES[fieldname].name
    
    def getMimetype(self, fieldname):
      self.checkFile(fieldname)
      return self.request.FILES[fieldname].content_type
    
    def saveFile(self, fieldname, fullNamePath):
      self.checkFile(fieldname)
    
      with open(fullNamePath, 'wb+') as destination:
        for chunk in self.request.FILES[fieldname].chunks():
            destination.write(chunk)
    
    You should override all methods from BaseAdapter

    Type: Request Object that implements BaseAdapter interface.

  • fileRoute

    The server route where the image will be uploaded. This route must be public to be accessed by the editor.

    Type: String

  • options

    This parameter is optional. It can be used to pass custom options for the file upload.

    Type: Dictionary


options parameter:

  • fieldname

    The field name from the request object.

    Type: String
    Default:
    "file"
  • validation

    A dictionary or a function used to validate the uploaded image. The dictionary specifies the allowed file extensions through allowedExts and the allowed mime types through allowedMimeTypes. The function should be invoked with: filePath and mimetype.

    Type: Dictionary or Function
    Default:
    {
      'allowedExts': ['txt', 'pdf', 'doc'],
      'allowedMimeTypes': ['text/plain', 'application/msword', 'application/x-pdf', 'application/pdf']
    }
    

Response

If the upload is completed successfully, the method returns a dictionary with the absolute path to the uploaded file. If an error occurs, the method throws an exception.

try:
  response = File.upload(CustomAdapter(request), '/public/')
except Exception:
  response = {'error': str(sys.exc_info()[1])}
return HttpResponse(json.dumps(response), content_type="application/json")

delete (src)

Method used to delete a file from disk. Throws an exception if an error occurs.

Parameters:


  • src

    The file path available in the body of the request under src key.

    Type: String

[class^="wpforms-"]
[class^="wpforms-"]
[bws_google_captcha]
<div class="gglcptch gglcptch_v2"><div id="gglcptch_recaptcha_1765512368" class="gglcptch_recaptcha"></div> <noscript> <div style="width: 302px;"> <div style="width: 302px; height: 422px; position: relative;"> <div style="width: 302px; height: 422px; position: absolute;"> <iframe src="https://www.google.com/recaptcha/api/fallback?k=6Ld6lNoUAAAAAM626LfCOrnkBFJtYZAKESFCjgv_" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe> </div> </div> <div style="border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px; height: 60px; width: 300px;"> <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px !important; height: 40px !important; border: 1px solid #c1c1c1 !important; margin: 10px 25px !important; padding: 0px !important; resize: none !important;"></textarea> </div> </div> </noscript></div>
[class^="wpforms-"]
[class^="wpforms-"]
[bws_google_captcha]
<div class="gglcptch gglcptch_v2"><div id="gglcptch_recaptcha_82464002" class="gglcptch_recaptcha"></div> <noscript> <div style="width: 302px;"> <div style="width: 302px; height: 422px; position: relative;"> <div style="width: 302px; height: 422px; position: absolute;"> <iframe src="https://www.google.com/recaptcha/api/fallback?k=6Ld6lNoUAAAAAM626LfCOrnkBFJtYZAKESFCjgv_" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe> </div> </div> <div style="border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px; height: 60px; width: 300px;"> <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px !important; height: 40px !important; border: 1px solid #c1c1c1 !important; margin: 10px 25px !important; padding: 0px !important; resize: none !important;"></textarea> </div> </div> </noscript></div>
[class^="wpforms-"]
[class^="wpforms-"]
[bws_google_captcha]
<div class="gglcptch gglcptch_v2"><div id="gglcptch_recaptcha_215290727" class="gglcptch_recaptcha"></div> <noscript> <div style="width: 302px;"> <div style="width: 302px; height: 422px; position: relative;"> <div style="width: 302px; height: 422px; position: absolute;"> <iframe src="https://www.google.com/recaptcha/api/fallback?k=6Ld6lNoUAAAAAM626LfCOrnkBFJtYZAKESFCjgv_" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe> </div> </div> <div style="border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px; height: 60px; width: 300px;"> <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px !important; height: 40px !important; border: 1px solid #c1c1c1 !important; margin: 10px 25px !important; padding: 0px !important; resize: none !important;"></textarea> </div> </div> </noscript></div>