跳转到主要内容

Django可分上传

项目描述

django-resumable

Build Status

django-resumable提供了处理resumable.js xhr上传的django后端功能。

安装

  • pip install django-resumable

  • resumable添加到您的INSTALLED_APPS

视图

为了异步上传文件,您必须定义一个处理已上传文件块的路由

from django.contrib.auth.decorators import login_required

from resumable.views import ResumableUploadView


urlpatterns += patterns('',
    url('^upload/$', login_required(ResumableUploadView.as_view()),
        name='upload'),
)

您还应该考虑为每个用户创建一个单独的文件块上传目录

class MyResumableUploadView(ResumableUploadView):
    @property
    def chunks_dir(self):
        return self.request.user.profile.chunks_dir

字段

如果您想在表单中处理可分上传,可以使用类似django核心FileFieldResumableFileField

from django.conf import settings
from django.core.urlresolvers import reverse

from resumable.fields import ResumableFileField


class ResumableForm(Form):
    file = ResumableFileField(
        allowed_mimes=("audio/ogg",),
        upload_url=lambda: reverse('upload'),
        chunks_dir=getattr(settings, 'FILE_UPLOAD_TEMP_DIR')
    )

JavaScript

django-resumable附带可扩展的前端脚本,开箱即用

{% load staticfiles %}
<!DOCTYPE html>
<html>
    <body>
        <form method="post" action=".">
            <fieldset>
                {% csrf_token %}
                {{ form.as_p }}
            </fieldset>
            <p><input type="submit" value="send" /></p>
        </form>
        <script type="text/javascript" src="https://raw.github.com/23/resumable.js/master/resumable.js"></script>
        <script type="text/javascript" src="{% static 'resumable/js/django-resumable.js' %}"></script>
        <script type="text/javascript" src="{% static 'resumable/js/init.js' %}"></script>
    </body>
</html>

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分发

django-resumable-0.2.0.tar.gz (17.2 kB 查看散列值)

上传时间 源代码

由以下支持