Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 20, 2012 23:35:49

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

На клиентской стороне использую вот этот метод: http://habrahabr.ru/post/109079/
А какой вьюхой обрабатывать ajax запрос?
Вот это:

def loadfile(request):                                            
return HttpResponse(request.raw_post_data)
Выдает Invalid boundary in multipart: None
Подсобите, плиз =)



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#2 Июнь 20, 2012 23:49:52

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

ajax file upload

Как насчет скопировать название темы, нажать F6, нажать Ctrl+V, нажать пробел, ввести ‘django’, нажать <Enter> и прочитать первые несколько ссылок?



Офлайн

#3 Июнь 20, 2012 23:55:16

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

Это сделал первым делом. Пока не особо вышло разобраться.



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#4 Июнь 21, 2012 00:09:56

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

ajax file upload

Офлайн

#5 Июнь 21, 2012 00:13:55

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

Ковырял тут. Дело в том, что выдает 500 ошибку. Делал просто во вьюхе один pass и нефига. Ругается на Invalid boundary in multipart: None.
Если расковырять локальные переменные, то говорит, что request.POST could not parse…Походу со стороны клиента идет какая-то лажа.



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Июнь 21, 2012 00:18:55)

Офлайн

#6 Июнь 26, 2012 05:47:54

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

Примерно так

class CabinetAddScan(JsonFormResponseMixIn, BaseUpdateView):
    model = Document
    form_class = ScanForm
    
class JsonFormResponseMixIn(object):
    @to_json
    def form_valid(self, form):
        self.object = form.save()
        return dict(
            success = True,
            object = self.object.__json__(),
        ) 
    
    @to_json
    def form_invalid(self, form):
        return dict(
            success = False,
            errors = [ (field.label, u", ".join(field.errors)) for field in form if field.errors],
        )
     
def to_json(func):
    def wrapper(self, *argv, **kw):
        data = json.dumps(func(self, *argv, **kw))
        return HttpResponse(data, mimetype="application/json")
    return wrapper



Отредактировано zheromo (Июнь 26, 2012 05:48:37)

Офлайн

#7 Июнь 26, 2012 11:42:16

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

А как этим пользоваться? =) Точней не…Где почитать что б понять как этим пользоваться?)

З.Ы. Лажа на самом деле шла от клиента. Переделал запрос. Все ок. Но теперь не могу получить данные
на стороне сервера. Обращаюсь к полю через request.FILES, пишет следующее:

Key \'mypic\' not found in <MultiValueDict: {u"\'mypic\'": [<TemporaryUploadedFile: \'test.jpg\' (application/octet-stream)>]}>'




Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Июнь 26, 2012 11:43:42)

Офлайн

#8 Июнь 26, 2012 12:29:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ajax file upload

barabansheg
А как этим пользоваться?
Курить Class Based Views



Офлайн

#9 Июнь 27, 2012 21:39:48

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

ajax file upload

Файлы загружает. Клиентская сторона тоже как надо работает…НО! При обращении к файлу напрямую(лежит в /media/files/) выдает 404. Если туда загружать файлы через форму - все ок. Может я не верно что-то сохраняю?
Вот код:

upload = request.FILES['test']
fd = open('%s/%s' % (settings.MEDIA_ROOT,upload.name), 'wb')
fd.write(upload.read())
fd.close()

Или передается что-то не правильно, т.к. сохраняю файл с сервера - какая-то хрень. Если загружал картинку, то скачал оттуда просто файл весом, почему - то, большим чем картинка.

PS Косяк все же на клиентской стороне. В моззиле все ок работает, в хроме - нет.




Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Июнь 30, 2012 23:40:54)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version