Примеры кода для Django + SWFUpload?

У кого-нибудь есть простые примеры кода для Django + SWFUpload ? Я отлично работаю над своим PHP-приложением, но Django дает мне головные боли.

3 Solutions collect form web for “Примеры кода для Django + SWFUpload?”

К сожалению, я не могу дать вам очень подробные образцы кода, но у меня довольно много опыта работы с SWFUpload + Django (для сайта для обмена фотографиями, над которым я работаю). Во всяком случае, вот несколько указателей, которые, надеюсь, помогут вам в поиске к счастью DjSWF 🙂

  1. Вы хотите использовать плагин cookie (если, конечно, вы используете какую-то аутентификацию на основе сеанса [например, django.contrib.auth и заботитесь, кто загрузил что).

    Плагин cookie отправляет данные из файлов cookie как POST, поэтому вам нужно будет найти способ вернуть это обратно в request.COOKIES (промежуточное программное обеспечение process_request которое ищет settings.SESSION_COOKIE_NAME в request.POST по определенным URL-адресам и выгружает его в request.COOKIES прекрасно работает для этого 🙂

  2. Кроме того, помните, что вы должны вернуть что-то в тело ответа для SWFUpload, чтобы распознать его как успешную попытку загрузки. Я считаю, что это изменилось в последней бета-версии SWFUpload, но в любом случае целесообразно просто вставить что-то там, как «хорошо». Для сбоев используйте что-то вроде HttpResponseBadRequest или тому подобное.

  3. Наконец, если у вас возникли проблемы с их поиском, загруженный файл находится в request.FILES 🙂

Если у вас есть что-то недоумение, которое я не покрыл, не стесняйтесь публиковать что-то более подробное, и я буду рад помочь.

Версия Django образцов для SWFUpload:

http://github.com/naltimari/django-swfupload-samples/tree/master

Так долго загружайте. Отличная идея, но это просто глючит, особенно в Windows.

Ниже приведена моя специфичная для Django реализация для исправления этой проблемы (т.е. мои загрузки не выполнялись в Firefox с 302 Redirect).

В моем первоначальном представлении, которое генерирует страницу с загрузчиком, я посмотрел файлы cookie и нашел sessionid

 ipdb> self.request.COOKIES {'csrftoken': '43535f552b7c94563ada784f4d469acf', 'sessionid': 'rii380947wteuevuus0i5nbvpc6qq7i1'} 

Когда я посмотрел, что было размещено в SWFUploadMiddleware (при использовании Firefox), я обнаружил, что sessionid не был установлен.

В моем представлении, которое генерирует страницу, содержащую обработчик загрузки, я добавил sessionid в контекст.

 context['sessionid'] = self.request.session.session_key 

В моих настройках swfuploader я добавил sessionid в параметр post-params следующим образом:

 post_params: {... "sessionid": "{{ sessionid }}" ...}, 

Теперь, когда я посмотрел в SWFUploadMiddleware, я мог видеть, что sessionid отправлен, и мои загрузки начали работать, если Firefox .

 ipdb> request.POST <QueryDict: {... u'session_id': [u'rii380947wteuevuus0i5nbvpc6qq7i1'],...}> 

Для полноты моя SWFUploadMiddleware выглядит так …

 from django.conf import settings from django.core.urlresolvers import reverse class SWFUploadMiddleware(object): def process_request(self, request): if (request.method == 'POST') and (request.path == reverse('upload_handler')) and request.POST.has_key(settings.SESSION_COOKIE_NAME): request.COOKIES[settings.SESSION_COOKIE_NAME] = request.POST[settings.SESSION_COOKIE_NAME] # http://stackoverflow.com/questions/6634666/403-forbidden-error-on-swfupload-and-django # Fix for problem uploading images (403 error) in Firefox 20 and others if request.POST.has_key('csrftoken'): request.COOKIES['csrftoken'] = request.POST['csrftoken'] 
Python - лучший язык программирования в мире.