- - PR -
ファイルのアップロード時の確認
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-10 18:52
お世話になります。ASP.net + C#の環境で、
現状、httpPostedFile.SaveAsにてアップロードされたファイルを保存していますが、ここで保存先にすでにファイルが存在しているかどうかのチェックは、File.Existsの使用により可能なのですが、ファイルが存在していた場合の上書き確認をクライアント側(Webブラウザ)で確認させることって可能なのでしょうか?(アップロード前、後は問いません) クライアントに「はい」か「いいえ」を選択させて、上書きをさせるか否かを行いたいのですが。 | ||||
|
投稿日時: 2005-05-10 19:41
考えられるのは、ファイルが存在していたら別名で保存して、
ファイル名と別名のフルパスをSessionに保存して、クライアントに確認のページ(ダイアログ)のレスポンスを返す。 ユーザーが「はい」「いいえ」で再度PostBackしてSessionに保存してある、ファイル名と別名で「はい」なら上書き処理、「いいえ」なら別名のファイルを削除ってところでしょうか。 | ||||
|
投稿日時: 2005-05-10 19:47
あと、この方法だと確認ページでユーザーが「はい」「いいえ」を選択しないでブラウザを閉じた場合などに、サーバーにゴミが残ります。
| ||||
|
投稿日時: 2005-05-10 19:59
SessionのモードがInProcであれば、ユーザーが「はい」「いいえ」で再度PostBackした後の処理が終わったタイミングでSession情報を削除するようにして、Session_End()でSession情報が削除されてなかったらファイルを削除するようにすれば残らないようにできますかね。 | ||||
|
投稿日時: 2005-05-10 20:10
もう、無難にアップロード画面に上書きするかしないかのチェックボックスでもつけてしまいそうです。
| ||||
|
投稿日時: 2005-05-10 22:23
Session_End()を使用しない方法も思いつきました。
別名で保存する時別フォルダにしといて、定期的に何らかの方法で別フォルダ下のファイルをばっさり削除。この時リアルタイムで処理中のファイルがあるとまずいので、誰もアプリケーションに触ってない時間帯に削除するか、ファイル日付を見て前日(もしくは一時間前とか)以前のもののみ削除する。 |
1