0
我有ASHX用户上传产品图像,我保存会话[“up_pro_image”]中上传的文件名。提交时,我阅读会话值并使用文件进行操作。但是如果他打开了两页并在两个页面上添加产品,那么如果从会话中丢失了一个文件名,该怎么办?如何解决这个问题?在两个浏览器和不同的会话相同的页面 - ASHX
我有ASHX用户上传产品图像,我保存会话[“up_pro_image”]中上传的文件名。提交时,我阅读会话值并使用文件进行操作。但是如果他打开了两页并在两个页面上添加产品,那么如果从会话中丢失了一个文件名,该怎么办?如何解决这个问题?在两个浏览器和不同的会话相同的页面 - ASHX
不是将它保存到会话中,而是将事件写入数据库。每个文件都可以有一个名为“IsProcessed”的标志。然后,您的代码可以在数据库中查询所有未处理的文件,处理它们,然后将该标志设置回数据库中。
从我看,这几乎是一样的。如果他打开了两页,按上传生病会收到两个文件,但我不知道哪个文件用于切换页面(页面为浏览器选项卡)。 – 2012-04-05 20:59:12
几乎一样,除非你没有丢失任何数据点!你不能调整你的应用程序,以便它不关心哪个标签提交文件,只要它们在同一个会话中? – mgnoonan 2012-04-05 21:18:54
林不知道你是否明白我的观点,但现在解释更多。 比方说,你是与我的用户登录,我也与我的用户登录。 比方说,你点击“AddProduct.aspx”,我也点击该页面。 现在你上传文件,但我也上传文件。 当你点击保存时,那个文件是给你的? 我知道这可以通过将ASHX响应保存到隐藏字段来完成,然后检查具有该GUID的文件是否存在等等,但更安全吗? – 2012-04-05 22:01:48