如何在ASP.NET和C#中每个会话"临时"存储Web服务器上的图像

Dav*_*ave 8 c# asp.net session image

我一直在寻找一段时间,觉得我有一个特别独特的情况.

我正在从第三方程序(我嵌入到我的C#应用​​程序中)生成一个图像,该程序保存到我的Web服务器上的文件系统中.您知道在特定会话完成后处理这些图像的任何有效方法吗?

对于Clarity:最初我在考虑一个文件夹(对于我的会话ID存储的图像),其内容每24小时左右自动删除一次.我不喜欢这个想法,因为它不是真正的可扩展性.

我还看了一下这个网站生成的ASP.NET动态图像. http://www.sitepoint.com/article/generating-asp-net-images-fly/

但是这看起来有点过分,因为我的图像需要以这种或那种方式保存到文件系统中.如果我将图像保存为静态名称,然后使用上述方法从中生成位图我担心并发使用可能会破坏应用程序.

这使得我可以在名称中保存带有会话ID的文件名,但是在会话结束后我找不到任何有效的清理图像的方法.

谢谢!

戴夫

更新:我非常喜欢到目前为止所提供的所有解决方案(我不认为数据库会因为我导出图像的方式而起作用)我感谢您的所有帮助...我将开始实施这些并且将会报告回来哪个效果最好!

Update2:我最终随机生成图像名称,存储它们,然后在会话结束时删除它们,感谢您的帮助.所有提出的方法都是很好的建议.对于这种特殊情况,虽然这种方法效果最好.

Joh*_*hnC 6

如何将Global.asax文件添加到您的网站,并在Session_End事件中删除该文件.

    protected void Session_End(Object sender, EventArgs e)
{
    // Remove file
}
Run Code Online (Sandbox Code Playgroud)


use*_*755 2

跟踪列表中的临时文件名,并在 Session_End 事件中或在每个页面的 load 或 init 事件中以编程方式检查会话超时并删除文件。

就像是:


if (Context.Session != null)
{
  if (Session.IsNewSession)
  {
    // delete temporary files
} }
Run Code Online (Sandbox Code Playgroud)