0

我的网站上有一个上传表单,允许用户插入一些项目(通常是树),并且他们可以选择在添加这些项目后上传图片。上传图片大约需要 15 秒,但我想让用户选择在他们等待图片上传时添加另一个项目。所以我想使用线程,因为:上传完成后,页面将刷新并且表单将重置,所以如果他们想添加另一个项目,他们必须等到它完成上传。

我试过这段代码:

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

但它不起作用,甚至现在都没有上传文件。有人知道原因吗?谢谢。

4

3 回答 3

2

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

如果您想在上传时保持页面交互,您应该寻找基于 ajax 的解决方案。

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

于 2013-03-11T09:30:09.553 回答
1

上传文件所需的大量时间不在处理它——您可能只是将文件保存在某个地方——而是通过网络传输文件。

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

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

于 2013-03-11T09:27:54.097 回答
0

也许您可以看看HTML5 可以为您做什么,以向用户提供更多反馈,说明他的文件已上传。就像 Roy 指出的那样,传输时间很重要,用户无论如何都必须等待。但是使用 HTML5 或许您可以提供一些不错的进度条来改善上传页面的用户体验。

希望这可以帮助。

于 2013-03-11T09:34:02.483 回答