Django显示正在上传的用户

时间:2011-05-13 07:39:08

标签: javascript python django django-templates django-views

我有一个filemanager应用程序,允许用户将文件上传到服务器,然后下载它们。现在处于状态时,用户开始上传浏览器时只显示小的加载圈,直到上传完成。这个服务器的用途是用于相当大的文件,大多数是100mb左右,因此可能需要一些时间,没有经验的用户可能会在上传和破坏它时开始浏览。

我一直在研究进度条,但我不是一个狂热的编码器,我需要一些时间在我的filemanager应用程序中实现它。时间我可能没有。我一直在考虑给用户发送通知,例如一个警告框,上面写着:“正在上传,请稍等!”当它上传时,上传完成后该框将消失。我已经尝试过使用javascript警告框,但这只需要用户点击确定然后它也会这样做。

def upload(request):
if request.POST:
    post_data = request.POST.copy()

if not post_data.get('path'):
        return raise_error(request,
            [_(u"No path given")])
    if not post_data['path'].startswith(request.user.fileman_Setting.root):
        return raise_error(request,
            [_(u"No access")])

    post_data.update(request.FILES)
    form = UploadForm(post_data)
    if form.is_valid():
       form.save(request.FILES, request)
       return HttpResponseRedirect('/fm/list/%s' % form.path)
    else:
        return raise_error(request,
            form.errors)
else:
    return raise_error(request,
            [_(u"Empty form.")]) 

我有什么想法可以实现一些东西来通知用户它正在上传,他应该等待?比进度条更简单的东西。我一直在考虑最后使用HttpResponseRedirect作为上传完成的标记,我可以和其他东西一起做些什么吗?

1 个答案:

答案 0 :(得分:1)

这篇文章:http://kuhlit.blogspot.com/2011/04/ajax-file-uploads-and-csrf-in-django-13.html讨论了如何为Django 1.3实现上传进度条。我认为进度条会更好,但是如果你想做一些简单的事情,你可以用javascript来显示一个对话框,说“我嘿,我在这里上传”。