今天看到一段代码,觉得还可以,虽然作者想要的功能没能够实现,但是值得讨论。
首先,我们想想要实现这样的功能该怎么做呢?
首先我们用经典的IFrame控件来实现文件的异步上传,也就是说文件上传的服务器端处理不是在原来页面的后置文件中,而是在Iframe窗口所打开的文件的后置代码中。注意,主窗口和Iframe窗口可以打开同一个地址的网页,也就是同一个网页,但是在服务器端,他们分别属于不同的实例,不同的Viewstate处理单位。
其次,我们需要文件上床成功后,在主页面刷新缩略图,因为文件上传的服务器端处理不是在原来页面的后置文件中,因此不可以直接在服务器端使用UpdatePanel.Update(),我们只能等文件上传完成并返回到客户端的Iframe窗口的时候发送消息到传页面通知其刷新缩略图,或者直接把缩略图的地址赋值给主页面的某个图片的SRC属性。注意,缩略图的地址可能并不是某个图片的地址,因为一般不存储一个缩略图副本在服务器文件系统,一般直接把一个ASPX文件的地址赋值给SRC属性,这个ASPX文件用于从原图生成缩略图并返回缩略图到客户端,关于生成缩略图的代码,请参考我的下一篇随笔。
以下代码仅供参考,并没有实现在主页面刷新缩略图的功能。
相关文章: