【问题标题】:How to upload a file and show progress bar in Django?如何在 Django 中上传文件并显示进度条?
【发布时间】:2011-07-01 17:28:33
【问题描述】:

我已经编写了在 Django 中上传文件的代码,如下所示:

def upload(request):
if request.method == 'POST':
    form = UploadFileForm(request.POST, request.FILES)
    if form.is_valid():
        handle_uploaded_file(request.FILES['file'])
        return render_to_response('uploadsuccess.html')
else:
    form = UploadFileForm()  
return render_to_response('upload.html', {'form': form})


def handle_uploaded_file(f):
    filename = "/media/Data/static/Data/" + f.name
    destination = open(filename, 'wb+')
    for chunk in f.chunks():
        destination.write(chunk)
    destination.close()

代码对我来说很好用。但是,我不知道应该如何修改此代码以在客户端显示进度条。

我的 html 页面如下所示:

{% extends "index_base.html" %}

{% block content %}
<script src="/media/js/functions.js" type="text/javascript"></script>
<script  src="/media/js/jquery.js" type="text/javascript">
    </script>
<div id="main_container">

{% include "includes/nav.html"  %}

<!------- Main Contents  ---------->
    <div id="contents_holder">
        <div id="contents">
            <div id="c_banner">
                    <span class="main_title">Upload File</span>
                </div>
            <div id="setting">
            <form name="post" action="/upload.psp/" method="post" enctype="multipart/form-data">
                <h2>Upload File</h2></br>
                <p>{{ form.file.label_tag }}&nbsp;&nbsp;{{ form.file }}</p></br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="submit" value="Upload" name="uploadButton" />
                &nbsp;&nbsp;<input type="button" value="Cancel" name="cancelUploadButton" onclick ="cancelUploadClicked()"/>
                <input type="hidden" value="title" name="title" id="title" />
            </form> 
                </div>

        </div>
    </div>
</div>

<!------- Main Contents  Finished ---------->
{% endblock %}

有人可以帮我将上传进度条与此代码集成吗?

提前致谢。

【问题讨论】:

    标签: python django file-upload progress-bar


    【解决方案1】:

    我认为您必须使用 Ajax 发送异步请求。

    这里也讨论了这个话题:File upload progress bar with jquery 在这里:How can I upload files asynchronously?

    【讨论】:

      猜你喜欢
      • 2013-01-26
      • 1970-01-01
      • 2010-11-01
      • 2011-03-10
      • 2012-09-02
      • 2020-07-16
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多