ASP.NET MVC + .NET4.8です。
前提・実現したいこと
ASP.NET MVCのWEBアプリで、ファイルアップロードと同時にDB更新をする処理があります。
ファイルアップロードはJSから非同期でコントローラーメソッドを呼び出し
サーバー側の特定フォルダに格納し、画面の入力内容はモデルバインドで
モデルクラスに設定して、DB更新時にモデルの内容とサーバー側の特定フォルダに配置された
ファイルをStreamで読み込みバイト配列として、画面入力内容と一緒に同じレコードに格納するようにしています。
改善したいこと
画面を開いて入力項目に更新内容を入力し、ファイル参照ボタンからファイルを選択してアップロードを行い
submitでDB更新するまでの流れは問題なく動いています。
気になっているのは、アップロードを行ってサーバーにファイルが保存されたあとに、ブラウザを閉じて
処理を中断したケースです。
中断された場合、サーバーにはアップロードされたファイルだけが残る状態になります。
今のところは定期的にアップロード先のフォルダにあるファイルのうち、タイムスタンプが一定の日付より小さいものを
削除することで対応していますが、もっと良いやり方があるのではないかと考えています。
そこで、モデルクラスにバイト配列のメンバーを追加して、そのメンバーに設定するようにして
DB更新時はそのバイト配列も含め同じトランザクションで更新するようにしてみました。
このやり方は問題なく動作するのですが、ファイルサイズがある程度大きくなると
ビューに保持されているデータが大きくなりすぎて表示が遅くなります。
このようなやり方しか思いつかないのですが、もっと良い方法、あるは定石のようや実現方法はあるでしょうか?
回答1件
あなたの回答
tips
プレビュー