在我的应用程序中,我根据用户选择的选项修改图像。每次修改默认图像时,我都会保存并将其命名为用户ID & date.now.tostring("yyyyMMddHHmmssf")
,以解决浏览器缓存问题。这工作正常,但现在我可能会结束很多旧图像。在会话结束时从服务器删除临时文件
现在我该如何删除服务器上我的~/Images/Temp/userID
文件夹中的所有图像?我正在考虑在Global.asax
中使用Session_End
或Application_end
,但我不认为我可以访问任何变量来获取临时图像的路径。
如何在会话结束后删除这些临时文件或类似的东西?
查询字符串参数是最简单的...基本上,只需要为文件命名一次,并在更新时覆盖它。然后当你设置你的图像的源代码(在你的代码后面,如果你想),追加一个查询字符串的图像名称。它可以是任何随机值......其目的是欺骗网络浏览器再次下载图像,从而确保您永远不会看到旧的缓存版本的图像。 – 2012-08-15 14:47:39
这就像4答案在一... 1)我试图避免有另一个程序或任务清理旧文件。 2,3,4)由于我仍然不熟悉web开发,因此我必须阅读如何使用这些建议。如果这样做有所不同,我正在做的事情都是通过VS2010中的代码完成的。这可能不是正确的做事方式,但我更像是一个Windows .NET程序员,而不是ASP/Web开发人员。 – daNinja 2012-08-15 14:50:56
查询字符串做了诀窍。现在,每个用户(<200)只会创建一个临时图像。我在http://forums.asp.net/t/1561843.aspx/1找到了一个完美的问题,其中OP几乎完成了我正在做的事情,除了他将修改后的图像保存到处理程序的响应输出流中。如果我能做到这一点,那么我就不需要首先保存这些愚蠢的图像。现在我只需要弄清楚如何使用处理程序.... – daNinja 2012-08-15 16:51:38