|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
几个月前,写过一篇关于Asp无组件上传带进度条的Blog,当时主要分析了一下通过Web文件上传并在后台获取分析数据的实现原理。其中实现进度条的根本就是要实现分块获取数据,根据分块大小和块数记录已上传大小。还有一些详细的细节问题当时并没有说清晰: Q: 进度信息如何访问? A: 进度信息保存在Application中,每次上传时生成一个进度ID,根据这个进度ID可以检索Application中的当前上传进度信息。 Q: 进度信息以什么形式保存在Application中? A: Asp太弱了,我分别试过Scripting.Dictionary和XMLDom,但是Asp中Application不能保存这种对象,要是 asp.net就直接可以用Hashtable了。最后是在Application中用一个ADODB.Recordset对象来保存进度相关信息。 Q: 怎么保证的页面能即时反应显示进度条信息? A: 文件开头加上<%@enablesessionstate=false%>声明来关闭会话状态 要保证禁用缓存: Response.CacheControl = "no-cache" Response.Expires = -1 Q: 可以上传多大文件? A: 这个和网速,服务器内存等多方面因素有关,将Server.ScriptTimeout设置足够长,那么理论上可以和服务器保持连接很长时间。因为在 asp中,不能实现对文件的“追加”写入,必须将所有待写入文件的数据都先保存在内存,这样假如上传大文件,那么将很占用服务器内存(文本文件可以使用 TextStream.Write追加写入)。在asp.net下就比较爽了,分块读取的时候,每读一块分析一块,然后将上传文件的数据内容“追加”写入硬盘文件中,对内存占用很小很小。一般几十MB的文件还是没问题,太大的上传其实对于web下也不是很有意义。 返回类别: 教程 上一教程: WEB打印设置解决方案三(FILESYSTEM组件实现WEB打印) 下一教程: ASP下载系统防盗链方式 您可以阅读与"ASP无组件上传带进度条(续)"相关的教程: · ASP无组件上传进度条解决方案 · ASP无组件文件上传的实例 · 中文的无组件文件上传ASP函数 · 时间、空间性能极优的ASP无组件上传类 · 化境ASP无组件上传 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |