4


4

Djangoで複数のファイルをアップロードするにはどうすればいいですか?

2 Answer


11


大変な苦労の末、私はdjangoを使ってuploadify(http://www.uploadify.com/)を操作するようになりましたが、問題は実際にはdjangoの問題ではありませんでした。そのプラットフォーム上のブラウザは、Flash内からクッキーを提供しません。手動で設定する必要があります。

そこで私はこれらをレンダートゥーレスポンスに含めます。

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:ハードコーディングされたURL" / upload "を"リバース "に置き換えます。" "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( 'アップロード用のセッションCookieの偽造:\ request.POST [ settings.SESSION_COOKIE_NAME])


2


誰かがあなたの目的にかなうかもしれないマルチアップロードフィールドを既に作成しました。

Djangoはフォームの作成やファイルのアップロードを扱うための素晴らしいサポートをしています。 これらの記事を読んで、複数アップロードのフィールドコードがどのように機能するのかを理解してください。