Skip to content
This repository has been archived by the owner on Feb 18, 2023. It is now read-only.
tstone edited this page Sep 13, 2010 · 17 revisions

django-uploadify

A Django re-usable app to integrate Uploadify.

Installation

Installing django-uploadify

  1. Download django-uploadify
  2. Place the folder ‘uploadify’ somewhere on your Python path (either in your project directory or inside of Python26\Lib\site-packages\).
  3. Add ‘uploadify’ to your INSTALLED_APPS in your project’s settings.py file
  4. Add a reference to uploadify in your urls.py…
    (r'^uploadify/', include('uploadify.urls')),

Installing Uploadify

  1. Download uploadify
  2. Copy all of the ‘uploadify’ folder from the Uploadify distribution into your media root. Default is: MEDIA_ROOT\js\uploadify\
  3. Rename the uploadify file from “jquery.uploadify.v2.1.0.min.js” (or whatever version it is) to simply “jquery.uploadify.js”
  4. In uploadify/settings.py, make sure the setting UPLOADIFY_ROOT is set to the correct value if the uploadify folder is installed to a location other than the default. Note that the UPLOADIFY_ROOT setting is relative to the MEDIA_ROOT value.

Using django-uploadify

How It Works

Django-uploadify works by providing a template tag, {% multi_file_upload %}., which takes a single parameter. The template tag will render the Uploadify jquery/flash multi-file upload interface on the page. A user may operate Uploadify, selecting and uploading multiple files. For each file that is uploaded a Django signal will be fired, containing the file data. After all uploads have been completed, the template tag will use the value of ‘upload_complete_url’. It will fetch that page via AJAX, and replace the Uploadify GUI with the contents of the page (a jQuery $.load).

Code Examples

To insert the django-uploadify template tag…

{% load uploadify_tags }{ multi_file_upload ‘/your/url/upload/complete/’ %}

Creating a signal receiver…

def upload_received_handler(sender, data, **kwargs):
if file:
//# process the received file here
print data.file

upload_recieved.connect(upload_received_handler, dispatch_uid=‘yourapp.whatever.upload_received’)

Reference

upload_recieved Signal

Provides the following arguments:

  • data – A django file, the value of request.FILES['Filedata']

upload_complete_url Parameter

When this page is fetched by the client-side javascript, the following Uploadify values are POST’ed to it:

  • filesUploaded – The total number of files uploaded
  • errors – The total number of errors while uploading
  • allBytesLoaded – The total number of bytes uploaded
  • speed – The average speed of all uploaded files
Clone this wiki locally