アップロードされたファイルの一時記憶域を処理する方法

django django-file-upload django-sessions static-files
アップロードされたファイルの一時記憶域を処理する方法

私のdjangoアプリケーションには、いくつかの条件付きパラメーターを使用したマルチステップ登録があります。 このため、セッション中にフォームのデータを保存することがわかりました。 残念なことに、セッションはpickleを使用してデータをシリアル化します。これはファイルのシリアル化をサポートせず、「PicklingError:pickleできません:属性検索cStringIO.StringOが失敗しました」
. この問題を回避する方法は? 変数として画像を送信する必要があります
次のすべてのビュー、またはGETパラメータとして送信するか、他の方法でそれを行いますか? 問題はかなり明らかだから、サンプルコードが必要かどうかはわかりません。

  3  0


ベストアンサー

アップロードされるファイルのサイズが数KBを超える場合、おそらくセッションに保存したくないでしょう(そして、GETを介してブラウザに送り返すことは絶対にしたくないでしょう)。

いくつかの選択肢が考えられます。

  • アップロードされたファイルが来るように登録フォームを書き直すことができます
    最終。

  • フォームをシングルステップにし、マルチステップを偽造することができます
    javascript(たとえば、DIVを非表示にして表示する)。

  • 一時ファイルをディスクに保存し、ファイル名を保存できます
    セッション中(古いファイルを定期的にクリーンアップすることを忘れないでください)

  • 登録を簡素化し、ファイルのアップロードを行うことができます
    「プロファイル」ページ(おそらく、サイトの残りの部分へのアクセスを許可する前に、「プロファイルを入力する必要があります」要件を強制する)。

1


タイトルとURLをコピーしました