我有一个filemanager应用程序,它允许用户将文件上传到服务器,当然也可以下载文件。现在处于状态,即用户开始上传时,浏览器仅显示较小的加载循环,直到上传完成。该服务器的使用情况是用于相当大的文件,大多数文件约为100mb,因此可能要花一些时间,并且没有经验的用户可能会在上载和破坏文件时浏览。
我一直在研究progressbars,但我不是一个狂热的编码人员,要在我的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作为完成上传的标记,我可以与此同时做些什么吗?
最佳答案
这篇文章:http://kuhlit.blogspot.com/2011/04/ajax-file-uploads-and-csrf-in-django-13.html讨论了如何为Django 1.3实现上传进度栏。我认为最好使用进度条,尽管如果您想做一些简单的事情,则可以显示一个带有JavaScript的对话框,说“嘿,我正在这里下载”。