私はユーザーが画像をアップロードするために使用できるシンプルなフォームを持っています。プレビューボタンがあるので、ユーザーが画像を選択してプレビューをクリックするとポストバックが発生し、画像を一時フォルダに保存してサイズを変更してページに表示します。そこから、ユーザーはsubmit form
またはedit
のいずれかのフォームを使用できます。彼が提出する場合、すべてが大丈夫です、私は正しいフォルダにサイズ変更されたイメージをコピーします。ファイルを上書き(イメージ)し、Cでイメージを削除しますか?
彼が編集をクリックすると、別の画像を選択した場合、私は(元とリサイズし両方)アップロードされたファイルを削除する必要があると私はこれを行う場合は、次の
File.Delete(HostingEnvironment.MapPath(TmpDirectory + PostImageName + ".jpg"));
File.Delete(HostingEnvironment.MapPath(TmpDirectory + PostImageName + "_small_.jpg"));
私が使用している他のプロセスを言って例外を取得します画像と削除できません。
また、そのファイルを削除する代わりに、同じ名前の新しいイメージを上書きするように保存しようとすると、ファイルがすでに存在するためにエラーがスローされます。
回数に制限は私がポストバック後に、ときに、ユーザー、また、(それもこれを行うには意味がありません)インクリメンタル
をファイルを保存傾けるように、ユーザーが/プレビューを編集することができますがありません編集モードに戻り、ファイルアップロードコントロールが空のフォームを表示します。どのように値を保持するために、ファイルのアップロードコントロールを取得できますか?他のすべてのテキストボックスとテキストエリアとチェックボックスは正しく動作します。
は、これらが私の質問です要約する:1)どのように地球上の(というか、C#で)私はその例外を取得せずにファイルを削除することができますか?
または
1)ファイルの上書き方法
2)ファイルアップロードコントロールをポストバックの間にその値を保持する方法。
ありがとうございました。
ここにその保存方法を示します: '' Bitmap img = new Bitmap(HostingEnvironment.MapPath(TmpDirectory + PostImageName + "_big.jpg")); ''どうすればこれを閉じるのですか? – IrishBelly
私はそれが開かれていることを意味します。 '' upImage.SaveAs(...) ''を介してファイルアップロードコントロール経由で保存されました。 – IrishBelly
はimg.Dispose()を使用しなければなりませんでした。 – IrishBelly