1

画像をアップロードして、そのサムネイルを作成し、両方を S3 に保存しようとしています。ファイルがアップロードされた後、最初にS3にアップロードし、サムネイルを作成しようとしましたが、PILが画像を認識できないため機能しません。次に、元の画像をアップロードするよりも最初にサムネイルを作成すると、EOF が発生します。

Django では、アップロードされたファイルを 1 回だけ使用することを許可していると思います....どうすればよいか教えてください....よろしくお願いします

4

3 に答える 3

2

ええと、質問をより具体的にする必要がありますが、同じことを行っており、ワークフローは次のとおりです。

1) request.FILES からのファイル アップロードでファイル ハンドルを取得し、それをローカル ファイルシステムのどこかに保存するため、ストリームで作業しません。これが問題の原因であると推測します。

2) FS 上の画像を操作したり、サイズ変更やサムネイル表示などを行うには、PIL (またはさらに良いことに、Pillow) を使用します。

3) Boto (http://boto.cloudhackers.com/en/latest/) を使用して S3 にアップロードします。これは、Boto を使用すると AWS の処理が不要になるためです。

それは非常に簡単で、うまく機能します

于 2012-12-14T11:20:20.273 に答える
0

私はついにそれを理解しました。問題は、アップロードされたファイルが保存されるストリームであったため、ファイルを読み取るたびに EOF に到達することでした。

唯一かつ最良の方法は、ファイルを読み取るたびに seek(0) することです。

これは、django で他のファイルを操作するときにも必要です。

于 2012-12-15T05:01:41.120 に答える