我有一个网络表单,允许用户在我们的系统中开票时上传文件。
上传是使用“ajax控件工具包”asyncFileUpload控件完成的。
这个想法是将文件保存到临时目录中,并且仅在用户点击“提交”按钮时将它们保存到永久位置。
我希望能够删除不再相关的临时文件(例如,用户将页面打开一个月而不发布表单)。
不永远保留临时文件的最佳方法是什么。
也许将它们的文件保存在会话中?
也许将它们保持在视图状态?
我可以向页面添加一些带有超时的 JS,并添加一些在用户离开页面时运行的代码。但这些想法是客户端解决方案。我不希望有人篡改代码并在我的系统上留下垃圾。
还有其他想法吗?
谢谢,
夏季灯泡
也许将它们的文件保存在会话中?
不可以。这会不必要地使用大量服务器内存,并且用户上传大文件可能会对服务器的整体性能产生不利影响。
也许将它们保持在视图状态?
不。这实际上意味着每次回发都会涉及上传(and无故再次下载)该文件。应用程序性能会显着降低,并提供较差的用户体验(更不用说占用您的带宽,这可能会花费您金钱)。
这些文件存储在服务器上的临时位置,对吧?应用程序会跟踪某种数据存储中的文件信息(我假设是 SQL 数据库)?我建议使用一个单独的应用程序来处理清理工作,特别是因为您正在谈论一个月的规模。
Windows 服务或计划的控制台应用程序就可以很好地完成这项工作。它可以定期检查目录和数据库,并根据您提供的任何规则执行一些清理工作。甚至可能使用票务系统中可能存在的任何消息传递机制来通知用户此操作、通知管理员等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)