Django 显示正在上传的用户

Posted

技术标签:

【中文标题】Django 显示正在上传的用户【英文标题】:Django Show user that upload is in progress 【发布时间】:2011-08-24 17:30:33 【问题描述】:

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

我一直在研究进度条,但我不是一个***的编码员,我需要一些时间才能在我的文件管理器应用程序中实现它。我可能真的没有时间。我一直在考虑给用户一个通知,例如一个警告框,上面写着:“正在上传,请稍候!”在上传时,上传完成后该框会消失。我已经尝试过使用 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】:

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

【讨论】:

以上是关于Django 显示正在上传的用户的主要内容,如果未能解决你的问题,请参考以下文章

Django - 为用户上传的媒体文件提供服务

如何使用 Django 和 AJAX 显示上传的图像

如何使用 pdf.js 将每个用户上传的 pdf 文件的第一页显示为 Django 中的预览?

通过上传表单将图像上传到Django用户个人资料

Django 文件上传大小限制

在没有 django ModelForm 的情况下从用户上传图像的问题