2009-04-17 1 views
2

ファイルを.jpgに変換し、単純なHTMLページで表示するPython CGIスクリプトを作成しました。私はこれらの.jpgファイルでフォルダを混乱させたくないので、tempfile.NamedTemporaryFileを使用して変換された.jpg出力を保存するファイルを作成しました。すべて素晴らしいですが、私はこのファイルがページが表示された後に削除したいです。現在私はdelete = Falseを設定していますが、壊れたimgリンクを発生させずにファイルを削除できないようです。CGIで表示されている一時ファイル(イメージ)を削除するにはどうすればよいですか?

答えて

3

あなたのcgiスクリプトからファイルを削除することはできません。 htmlページは、スクリプトの実行が終了した後にのみユーザーに送信されるためです。ユーザーのブラウザはhtmlを解析し、jpgファイルを取得します。

最も簡単な選択肢は、一時ファイルをサブディレクトリに書き込んで定期的にそのディレクトリを清掃することです(最後の数分間のみに住んでいます)。このプロセスを改善する方法はありますが、おそらく意味がありません。

さらに高度なオプション(シナリオによっては無意味かもしれません)は、「get jpg」リクエストでスクリプトを実行するようにWebサーバーを設定することです。そしてあなたはあなたのスクリプトを通してjpgをストリーミングできます。そうすれば、jpgがいつ取り出されたかを知ることができます。このスクリプトでは、サブスクリプトを非同期的に呼び出してjpgファイルを削除することができます。

関連する問題