【发布时间】:2011-06-29 06:30:10
【问题描述】:
我正在尝试进行 ajax 文件上传和实时进度条, 我已经在本地主机中对其进行了测试,并且效果很好, 但是,当我尝试在在线 Web 服务器上对其进行测试时,该栏直到上传文件结束时才起作用, 当我将 System.Threading.Sleep(value) 放在上传循环的末尾时, 酒吧工作,但上传很慢,
我该如何解决这个问题?
我使用的步骤:
构造iframe(指向Upload.aspx)并在其中上传文件。
在页面加载 javascript 函数时,使用 window.parent.register(form) 函数调用 iframe 页面,该函数将 iframe 表单谓词到父页面中的 javascript 变量。
在父页面 (Default.aspx) 中,我放置了一个按钮,然后 onclick 提交了谓词的 iframe 表单。然后javascript间隔每(1000ms)调用一次ajax回调函数。
此函数(ajax 回调)正在监视会话["UploadInfo"]。
当 iframe 表单提交 iframe 页面时,它调用 DoUpload() 方法在 while 循环中从 (fileUpload.PostedFile.InputStream.Read(bytes,0,1);) 读取文件然后写入特定路径中的字节,并将 (1) 添加到 session["UploadInfo"] (这会增加进度条)。
我想让 DoUpload 和 ajax 回调函数同步工作。
当我在
localhost中运行网站时,一切都完全按照我的预期运行,但是从网站运行时,进度条不起作用。
注意:当我将 System.Threading.Thread.Sleep(100) 放入 while 循环时,进度条可以工作,但速度很慢。
【问题讨论】:
-
有可用的代码吗?你用什么控件?
-
问题是代码太长无法发布,但我使用的是 iframe 和其中的文件上传控件,所以当异步刷新 iframe 页面时。
-
基于你的 sleep(100) 导致进度条工作的事实,我要说你做文件大小检查的内部需要增加。
标签: asp.net ajax file-upload upload