Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 17, 2013 01:23:26

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

Есть задача - загрузить в модель фото. Через форму. Но не могу найти - как это можно сделать не через FORM API.
Не могу понять, как получить файлы из формы <input type='file' ….>
При отправке request.files пуст, ну и остальные реквесты соответственно не содержат ничего. Как быть?

Офлайн

#2 Дек. 17, 2013 01:40:18

bu_
От:
Зарегистрирован: 2010-11-03
Сообщения: 14
Репутация: +  4  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

Код давайте, модель, форму, вьюшку.



Офлайн

#3 Дек. 17, 2013 01:49:55

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

bu_
Код давайте, модель, форму, вьюшку.
Да не вопрос.

Форма:
    
<form name="add_avatar" enctype="multipart/form-data">
            <input type="file" name="avatar" accept="image/*">
            <input type="text" value="5" name="code" readonly style="display: none;">
</form>


        "Отправить": function() {
            var theForm = $(document.forms['add_avatar']).serialize()
            $.ajax({
              type: 'GET',
              url: 'usl',
              data: theForm,
              success: function(data) {
                  var obj = jQuery.parseJSON( data )
                  if (obj.code == 1){
                      setTimeout("window.location.href = 'url'", 300);
                  } else {
                      $('.validateTips').html(obj.request)
                  }
              },
              error:  function(xhr, str){
                $('.validateTips').html('Возникла ошибка: ' + xhr.responseCode);
                }
            });

Вюшка:
Ну тут собственно пока ничего не сделал.
Пытаюсь получить что-то из request.FILES.items() = тут пустой список
Если request.FILES - выводит ошибку:
MultiValueDictKeyError at url
"'avatar'"

Отредактировано xxnikolayxx (Дек. 18, 2013 23:23:47)

Офлайн

#4 Дек. 17, 2013 01:51:02

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

Может быть $.ajax подводит…

Офлайн

#5 Дек. 17, 2013 01:57:35

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

xxnikolayxx
Может быть $.ajax подводит…
Погуглил, действительно дело в JavaScript. Ajax не умеет файлы загружать, нужно костыли какие-то искать…
Если все-таки кто-то знает решение, буду благодарен.

Офлайн

#6 Дек. 17, 2013 03:44:45

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

bu_
Код давайте, модель, форму, вьюшку.
Вопрос решен, спасибо, что натолкнул на мысль =)

Офлайн

#7 Дек. 17, 2013 05:48:39

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

Вопрос решен, спасибо, что натолкнул на мысль =)
а как решен?

Офлайн

#8 Дек. 17, 2013 12:46:02

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

xxnikolayxx
Погуглил, действительно дело в JavaScript. Ajax не умеет файлы загружать, нужно костыли какие-то искать…
Если все-таки кто-то знает решение, буду благодарен.
Пользуюсь вот таким аплоадером. Хорошо дружит с Django

Офлайн

#9 Дек. 18, 2013 23:06:04

xxnikolayxx
От:
Зарегистрирован: 2011-12-05
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

ilnur
Раньше отправлял данные через ajax, а теперь отправляю обычным способом - через action формы. Результат обработки формы передаю в переменной result.
В шаблоне: Если есть переменная result - добавляю скрипт модального окна с автоматическим открытием и вывожу result в этом модальном окне.

В итоге отправлю форму и когда страница перезагружается - открывается окно с формой, но в добавок с сообщением и понеслась =)

Офлайн

#10 Дек. 18, 2013 23:11:06

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Загрузка файлов без Form API

Пользуюсь jquery. Проблем с загрузкой файлов через аякс не наблюдал

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version