我的网站上有一个上传表单,允许用户插入一些项目(通常是树木),他们可以选择上传图片 后添加这些项目。 上传图片需要15秒钟,但我希望让用户在等待图片上传时添加另一项。 所以我想使用线程,因为: 上传完成后,页面将刷新,表单将重置,因此他们必须等待,如果他们想要添加其他项目,它将完成上传。
我试过这段代码:
protected void UploadFile(Object s, EventArgs e)
{
Thread t = new Thread(delegate()
{
//code for upload the image
)};
t.Start();
}
但它不起作用,甚至现在都没有上传文件。 有人知道原因吗? 感谢。
答案 0 :(得分:2)
只有在收到完整的请求后才会调用您的服务器端代码 因此,使用一个线程将无济于事。
如果您希望在上传过程中保持页面交互,您应该寻找基于ajax的解决方案。
一个非常简单的选项是uploadify。您可以将其连接到HttpHandler,并在应用程序保持交互的同时在后台进行上传。
答案 1 :(得分:1)
上传文件所需的时间不在处理中 - 您可能只是将文件保存在某处 - 这是通过网络传输文件。
所以我建议不要尝试在这里进行后台处理,只需按正常方式处理它,它就会同样高效。用户只需要等到图像通过网络发送。
如果用户在上传图片时需要添加其他项目,您可以随时让您的网站在浏览器的标签/窗口中打开另一个页面。
答案 2 :(得分:0)
也许您可以查看HTML5 can do for you在向用户提供更多反馈信息方面的内容。像罗伊指出的那样,传输时间非常重要,用户无论如何都要等待。但是使用HTML5,您可以提供一些不错的进度条来改善上传页面的用户体验。
希望这有帮助。