2013-03-11 69 views
0

我有一个上传表单,在我的网站,允许用户插入一些项目(通常是树木),他们可以选择上传图像他们添加此项目。 上传图片需要15秒左右的时间,但我希望让用户选择在等待图片上传时添加其他项目。 所以我想要使用线程,因为: 上传完成后,页面将刷新并重置表单,因此如果他们想要添加其他项目,他们必须等待直到完成上传。上传图像的背景,与线程

我想这代码:

protected void UploadFile(Object s, EventArgs e) 
     { 
    Thread t = new Thread(delegate() 
    { 
     //code for upload the image 
    )}; 
    t.Start(); 
} 

,但它不工作,它甚至不是现在上传文件。 有人知道原因吗? 谢谢。

+0

使用ajax异步上传图像 – Satpal 2013-03-11 09:29:45

回答

1

上传文件所需的时间块不在处理中 - 您可能只是将文件保存在某处 - 这是通过网络传输文件。

所以我建议不要尝试在这里做后台处理,只是以正常的方式处理它,它将只是性能。用户只需等待图像通过网络发送即可。

如果用户在上传图片时需要添加其他项目,则可以随时让您的站点在浏览器的标签页/窗口中打开另一个页面。

+0

我用另一个窗口做了它,并把它放在iframe和它的伟大。 – Jordan 2013-03-13 14:36:33

+0

iFrame,这是一个很好的接触:-) – 2013-03-14 10:14:02

2

只有在收到完整请求后才会调用您的服务器端代码。
所以使用线程不会有太大帮助。

如果你想保持你的页面交互,即使上传发生,你应该寻找一个基于ajax的解决方案。

一个非常简单的选项是uploadify。您可以将它挂接到一个HttpHandler上,并在应用程序保持交互时在后台进行上传。

0

也许你可以看看HTML5 can do for you在向用户提供更多反馈意见中表示他的文件已上传。就像Roy指出的那样,传输时间很重要,用户不得不等待。但是对于HTML5,也许你可以提供一些很好的进度条来改善上传页面的用户体验。

希望这会有所帮助。