Django Показать пользователя в процессе загрузки - PullRequest
3 голосов
/ 13 мая 2011

У меня есть приложение для управления файлами, которое позволяет пользователям загружать файлы на сервер и, разумеется, загружать их.Теперь в состоянии, когда пользователь начинает загрузку, браузер показывает только тот маленький кружок загрузки, пока загрузка не будет завершена.И этот сервер будет использоваться для довольно больших файлов, в основном около 100 МБ, так что это может занять некоторое время, и неопытные пользователи могут начать просматривать его, загружая и разрушая его.

Я просматривал индикаторы прогресса, но я 'Я не такой заядлый программист, и мне потребуется время, чтобы реализовать это в моем приложении для управления файлами.Времени у меня может и не быть на самом деле.Я думал об уведомлении для пользователя, например, о предупреждении с текстом: «Идет загрузка, подождите!»во время загрузки, и окно будет исчезать, когда загрузка будет завершена.Я уже пробовал с окном предупреждения 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 Ответ

1 голос
/ 13 мая 2011

В этом посте: http://kuhlit.blogspot.com/2011/04/ajax-file-uploads-and-csrf-in-django-13.html обсуждается, как реализовать индикатор выполнения загрузки для Django 1.3. Я думаю, что индикатор выполнения был бы предпочтительнее, хотя, если вы хотите сделать что-то простое, вы можете просто показать диалог с javascript, говорящим: «ЭЙ, Я ЗАГРУЖАЮ ЗДЕСЬ».

...