- PR -

ファイルダウンロード時の対象ファイル削除

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2009-02-13 19:01
こんにちは。またまた失礼します。

現在、Tomcat6 & JDK1.6 & Webwork2のフレームワークを使ったwebアプリを作成しています。
そこで、ファイルのダウンロードを行っているのですが、
何とかユーザが「開く」「保存」「キャンセル」を押したのを感知し、
このファイルを削除したいのですが、何か良い方法はありませんでしょうか?

と言いますのも、一時ファイル生成でダウンロードさせている為、ゴミとして残ってしまいます。

今、Actionで、Streamにセットした後、この対象を削除しているのですが、削除できません。
おそらく、ユーザの応答を待って、streamを開いてる為と思いますが・・。

よろしくお願いします。
朝日奈 ありす
ベテラン
会議室デビュー日: 2007/10/28
投稿数: 57
お住まい・勤務地: 北の都
投稿日時: 2009-02-13 22:01
一時ファイルを作成せずに、そのままストリームにのっけてあげれば?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2009-02-14 02:41
朝日奈さんと同意見。。。

ブラウザって実装次第ですが挙動を見る限り、
ユーザが開くだの保存だのをやってからダウンロードが開始するわけではないです。
一時ファイルを作成せざるおえない状況ならば、
cronで削除するのがいいんじゃないですかね。
わたなべ
大ベテラン
会議室デビュー日: 2007/12/09
投稿数: 123
お住まい・勤務地: 札幌
投稿日時: 2009-02-14 14:01
Streamに流してしまうのがベストですが、ファイルサイズとか加工が必要とかで一時ファイルを作らざるを得ないケースは確かにあります。
また、アクションで一時ファイルを作成だけしてすぐにレスポンスを返し、別のリクエストでダウンロードに来るというパターンもあります(ファイル生成に時間がかかる場合)。

で、自分の考えは、ゴミが残るのを気にしない、ですね。
ストレージは安く大容量になっているわけで、定期的に古いファイルを削除するバッチでも流す方が楽です。
1

スキルアップ/キャリアアップ(JOB@IT)