2009-08-28 27 views

答えて

2

あなたの目的に合った複数のアップロードフィールドが既に作成されています。

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

Djangoはフォームを構築し、ファイルのアップロードを扱うための素晴らしいサポートを持っています。これらの記事を読んで、マルチアップロードフィールドコードがどのように機能するかをよりよく理解することができます。多くの痛みの後

  1. Django Docs - Forms
  2. Django Docs - File Uploads
+0

ありがとうございます。これはうまくいくようですが、私はファンキーなエラーが発生します。私がアップロードしたものに関係なく、「ファイルが提出されていません。フォーム上のエンコーディングタイプを確認してください。ソースを見ると、TypeErrorが発生していることがわかります。 –

+3

enctype = "multipart/form-data"が見つかりましたか? – zalew

+1

これは、彼が多くの ''フィールドを作成しているという意味で、「複数」にすぎません。 HTML5の 'multiple'属性を' 'でサポートするほうが良いでしょう。 –

11

私は最終的にuploadify(http://www.uploadify.com/)はジャンゴで作業しましたが、問題は本当にDjangoの者ではなかったが、それはApple社のMacので動作するようになって;そのプラットフォーム上のブラウザはFlash内のCookieを提供しません。

$(document).ready(function() { 
    $('#fileInput').uploadify({ 
     'scriptData': {'{{session_cookie_name}}': '{{session_key}}'}, 
:テンプレートに敷設された構成を経由して

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

そしてuploadifyからそれらを提示:だから私は私のレンダリングに-REPONSEでこれらを含める

:それらを手動で設定する必要があります

これはビュー上のデコレータでうまくいっていますが、セッションを復元するためにセッションミドルウェアが実行される前に、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

さて、これは間違いなくアップロードのホームページのどこかに配置し、しばらくの間苦労して、それをあきらめて、http://blogs.bigfish.tv/adam/2009/06/14/swfupload-jquery-pluginを使用してください。 /(ただし、ジャンゴではありませんが、確かにクッキーが問題になっているはずです) –

+1

あなたがここにいるものを正確に実行しましたが、まだ動作しません - まだエラー403です。 – miki725

関連する問題