- PR -

ファイルのアップロード時の確認

1
投稿者投稿内容
KOME
常連さん
会議室デビュー日: 2005/02/09
投稿数: 23
投稿日時: 2005-05-10 18:52
お世話になります。ASP.net + C#の環境で、
現状、httpPostedFile.SaveAsにてアップロードされたファイルを保存していますが、ここで保存先にすでにファイルが存在しているかどうかのチェックは、File.Existsの使用により可能なのですが、ファイルが存在していた場合の上書き確認をクライアント側(Webブラウザ)で確認させることって可能なのでしょうか?(アップロード前、後は問いません)
クライアントに「はい」か「いいえ」を選択させて、上書きをさせるか否かを行いたいのですが。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-05-10 19:41
考えられるのは、ファイルが存在していたら別名で保存して、
ファイル名と別名のフルパスをSessionに保存して、クライアントに確認のページ(ダイアログ)のレスポンスを返す。
ユーザーが「はい」「いいえ」で再度PostBackしてSessionに保存してある、ファイル名と別名で「はい」なら上書き処理、「いいえ」なら別名のファイルを削除ってところでしょうか。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-05-10 19:47
あと、この方法だと確認ページでユーザーが「はい」「いいえ」を選択しないでブラウザを閉じた場合などに、サーバーにゴミが残ります。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-05-10 19:59
引用:

burton999さんの書き込み (2005-05-10 19:47) より:
あと、この方法だと確認ページでユーザーが「はい」「いいえ」を選択しないでブラウザを閉じた場合などに、サーバーにゴミが残ります。


SessionのモードがInProcであれば、ユーザーが「はい」「いいえ」で再度PostBackした後の処理が終わったタイミングでSession情報を削除するようにして、Session_End()でSession情報が削除されてなかったらファイルを削除するようにすれば残らないようにできますかね。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2005-05-10 20:10
もう、無難にアップロード画面に上書きするかしないかのチェックボックスでもつけてしまいそうです。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-05-10 22:23
Session_End()を使用しない方法も思いつきました。

別名で保存する時別フォルダにしといて、定期的に何らかの方法で別フォルダ下のファイルをばっさり削除。この時リアルタイムで処理中のファイルがあるとまずいので、誰もアプリケーションに触ってない時間帯に削除するか、ファイル日付を見て前日(もしくは一時間前とか)以前のもののみ削除する。
1

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