2009-08-28 7 views

답변

2

누군가가 이미 목적을 달성 할 수있는 다중 업로드 필드를 만들었습니다.

http://scompt.com/archives/2007/11/03/multiple-file-uploads-in-django

장고 큰 건물 형태에 대한 지원과 파일 업로드 작업이 있습니다. 이 기사를 통해 다중 업로드 필드 코드의 작동 방식을 더 잘 이해할 수 있습니다.

  1. 장고와 협력 나는 결국 uploadify있어 많은 고통 (http://www.uploadify.com/) 후
  2. Django Docs - File Uploads
+0

감사합니다. 이 작동하는 것,하지만 난 펑키 오류가 발생합니다. 업로드 한 내용에 관계없이 "파일이 제출되지 않았습니다. 양식의 인코딩 유형을 확인하십시오." 소스를 살펴보면 TypeError가 발생하고 있음을 알 수 있습니다. –

+3

enctype = "multipart/form-data"가 있습니까? – zalew

+1

이것은 많은 ''필드를 생성한다는 점에서 단지'다중 '입니다. HTML5의'multiple' 속성을''에서 지원하는 것이 더 낫습니다. –

11

Django Docs - Forms하지만, 문제는 정말 장고의,하지만 그것을 점점 애플 맥의 작업을 ; 해당 플랫폼의 브라우저는 Flash 내에서 쿠키를 제공하지 않습니다. 당신은 수동으로 설정해야합니다

그래서 나는 이러한 포함 내에-reponse 렌더링 :

return render_to_response('files_upload.html', { 
     'session_cookie_name': settings.SESSION_COOKIE_NAME, 
     'session_key': request.session.session_key 

을 그리고 템플릿에 규정 된 구성을 통해 uploadify에서 그들을 소개 :

$(document).ready(function() { 
    $('#fileInput').uploadify({ 
     'scriptData': {'{{session_cookie_name}}': '{{session_key}}'}, 

데코레이터를 사용하여 뷰를 통해이 작업을 더 잘 수행했음을 알았지 만, 세션을 복원하기 위해 세션 미들웨어가 실행되기 전에 POST를 COOKIE에 복사하는 미들웨어에 넣은 더러운 해킹이었다.

class FakeUploadCookieMiddleware(object): 
    """TODO: replace the hardcoded url '/upload' with a 'reverse'.""" 
    def process_request(self, request): 
     if request.path == '/upload/' \ 
      and request.POST.has_key(settings.SESSION_COOKIE_NAME): 
      request.COOKIES[settings.SESSION_COOKIE_NAME] = \ 
       request.POST[settings.SESSION_COOKIE_NAME] 
      logging.debug('Faking the session cookie for an upload: %s', \ 
       request.POST[settings.SESSION_COOKIE_NAME]) 
+0

글쎄, 지금 이것은 확실히 어딘가에 uploadify 홈 페이지에 배치되어야하고, 약간의 시간 동안 고민하고, 그것을 포기하고 사용했다. http://blogs.bigfish.tv/adam/2009/06/14/swfupload-jquery-plugin/(장고와 함께하지는 못했지만 여전히 쿠키가 문제 였음에 틀림 없음) –

+1

여기에있는 것을 정확히 했는데도 여전히 작동하지 않습니다 - 여전히 오류 403. 어떤 아이디어입니까? – miki725

관련 문제