首页 > 解决方案 > 在 Django 视图中接收 dropzone 文件

问题描述

谁能帮我在 Django 的函数视图中接收 dropzone 输入?我在我的 dropzone 模板中编写了这段代码:

index.html

 <form  method="post" action="{% url 'index' %}" enctype="multipart/form-data" class="dropzone" id="myDropzone" >
                                    {% csrf_token %}                          

                            </form>

URLs.py

 url('^$', views.UI_index, name='index'),

并在views.py我按功能收到发布的文件 UI_index

def UI_index(request):
file_upload_message=''
if request.method=='post':
    f = request.FILES['file']
    file_upload_message='the file is received!'

 return render(
    request,
    'cta_UI/index.html',
    {'file_upload_message':file_upload_message},
    )

index.html我收到file_upload_messagelike的值{{file_upload_message}}但它似乎无法正常工作,似乎条件if request.method=='post'不起作用,那么我如何将上传的文件发布到视图?当 post 方法在 dropzone 中完全执行时?虽然这不是我真正的项目,但这是接收文件的第一步......请帮助我。谢谢。

标签: djangodropzone

解决方案


请求方法

您可以尝试以下代码

def UI_index(request):
    if request.method=='POST':
        up_file = request.FILES['file']
        if up_file:
            destination = open('/tmp/' + up_file.name, 'wb+')
            for chunk in up_file.chunks():
                destination.write(chunk)
            destination.close()
            file_upload_message='the file is received!'
        else:
            file_upload_message='the file is missing!'



    return render(request,'cta_UI/index.html',
        {'file_upload_message':file_upload_message},)

推荐阅读