2012-05-06 3 views
3

저는 내 웹 사이트의 사용자 프로필 아바타를 처리하기 위해 django-avatars를 사용하고 있습니다. 현재 사용자가 아바타를 업로드 할 수있는 기능이 포함 된 사이트의 기본 Android 앱을 개발 중입니다. 내 장고보기에서베이스 64로 인코딩 된 GET 매개 변수를 통해에 이미지 데이터를 전달하고있어, 나는 이미지를 디코딩하는 base64를 통해 파일 업로드

data = base64.b64decode(request.POST['data'])  
out = open("etc/test.jpeg", "wb") 
out.write(data) 
out.close() 

있습니다. 이것은 잘 작동하고 있습니다 (test.jpeg는 내가 원하는 파일입니다). 그러나 이것을 장고 아바타로 묶는 데 문제가 있습니다. 장고 - 아바타의 소스를 통해 찾고

의 새로운 아바타를 만드는 데 사용됩니다 다음,

avatar = Avatar(
    user = request.user, 
    primary = True, 
) 
image_file = request.FILES['avatar'] 
avatar.avatar.save(image_file.name, image_file) 
avatar.save() 

내 질문은 어떻게 내 파일 데이터 (필요한 request.FILES 형식으로 변환 할 수 있습니다 또는 내 형식을 허용하도록 save 메소드를 다시 쓰는 가장 쉬운 방법은 무엇입니까?

답변

5

요소는 wrapper의 파일과 유사합니다. 파일 데이터를 StringIO에 고정하고 django.core.files.File 생성자로 전달한 다음 에서 save()으로 전달합니다.

+0

django File 객체를 생성하는 데 문제가 있습니다. http://dpaste.com/743542/ avatar.avatar.save() 줄에서이 오류가 발생합니다. http://dpaste.com/743541/ – numegil

+0

데이터의 길이를 지정해야합니다. StringIO 객체의'size' 속성에 추가합니다. –

+0

위대한 일, 정말 고마워! – numegil

관련 문제