我有一个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作为上传完成的标记,我可以和其他东西一起做些什么吗?
答案 0 :(得分:1)
这篇文章:http://kuhlit.blogspot.com/2011/04/ajax-file-uploads-and-csrf-in-django-13.html讨论了如何为Django 1.3实现上传进度条。我认为进度条会更好,但是如果你想做一些简单的事情,你可以用javascript来显示一个对话框,说“我嘿,我在这里上传”。