我有一个网页,用户可以在其中创建数据库记录并选择他们想要上传到数据库服务器的文件。这些文件可能很大,比如 100mb。
我不希望用户等待,所以我希望文件在后台上传。这样他们就可以在上传文件时继续做其他事情。
BITS 是解决这个问题的方法吗?还是仅用于 Fatclient 开发?有什么好的教程吗?
如果 BITS 不可行,我有什么选择?使用文件位置对服务进行 ajax 调用?
我有一个网页,用户可以在其中创建数据库记录并选择他们想要上传到数据库服务器的文件。这些文件可能很大,比如 100mb。
我不希望用户等待,所以我希望文件在后台上传。这样他们就可以在上传文件时继续做其他事情。
BITS 是解决这个问题的方法吗?还是仅用于 Fatclient 开发?有什么好的教程吗?
如果 BITS 不可行,我有什么选择?使用文件位置对服务进行 ajax 调用?
如果您说“他们可以继续做其他事情”,意味着他们可以在同一个网页上执行其他 Ajax 请求(即不能离开它),您可以使用任何基于 Flash 的上传器来完成此操作(SWFUpload是众多之一)。这不需要任何东西,只需要一些 JavaScript、一个<input type="file">
和嵌入式 Flash 上传器。
如果您希望用户能够离开启动上传的页面,您不能在浏览器中真正做到这一点,至少在WebSockets在所有浏览器中完全实现之前是这样。即便如此,这将是相当困难的。
我认为 BITS 不会为您解决问题。我从未使用过它,但似乎无法通过 Web 应用程序访问它——它似乎更适合 Windows 客户端应用程序或 Windows 服务。
您可能需要考虑 Andrew Valums AJAX 上传控件 ( http://valums.com/ajax-upload/ ) 或 Uploadify ( http://www.uploadify.com/ )。这些都是 jQuery AJAX 控件(并且 uploadify 需要 Flash)。我使用 jQuery 进行 Web 应用程序开发,所以我偏爱这些控件。我在几个项目中使用了 Valums 的上传控件,效果很好。由于 Flash 的要求,我没有在实际的生产应用程序中使用 uploadify(但它看起来非常好)。我确信还有其他适用于其他 JavaScript 框架的 AJAX 上传工具。
我希望这有帮助!
我知道这篇文章有点旧,但我遇到了同样的问题。我的解决方法是使用一个小的弹出窗口,该窗口仅包含文件上传控件和参数来确定文档的存储位置。用户可以从小弹出窗口上传文件,并且在上传时,继续在原始浏览器窗口上浏览他们希望的任何地方,因为他们永远不会真正离开。只是在同一条船上的其他人的想法。