异步上传文件到服务器并允许用户移动另一页

时间:2015-04-10 19:05:05

标签: jquery asp.net file-upload

标题本身可能不清楚,但让我告诉你一个场景。我有一个4-5页的小型asp.net mvc应用程序。一页是带有文件上传控件的小表单。在开发过程中,我们实现了正常的FileUpload控件,并在页面提交时发布。由于此应用程序也由具有极低带宽连接的客户端访问(5 MB文件需要35-40秒)。用户还通过移动/平板电脑连接,这始终存在带宽问题。

我想将文件上传到服务器的不同请求中,如果用户提交表单,则允许他移动另一个页面,文件继续在场景后面上传。如果我们允许用户移动另一个页面,则无法跟踪上传文件的早期请求。我想到了其他方法,如打开一个窗口本身(并隐藏它)从那里上传文件,并在文件上传时关闭该窗口等。请建议我一些其他方法(任何最佳实践),这些就足够了。还有一点是大多数用户使用旧浏览器(IE9)

1 个答案:

答案 0 :(得分:0)

根据我的经验,您需要主要使用ASP.NET Web Api和Ajax。在您的单个页面中,您可以发送文件上载div,当用户选择文件并单击上传按钮时,您可以显示一个较小的div,其中包含一个简单的文本File is being loaded... Please wait。例如,您可以在右侧显示此信息div。同时,您可以显示下一个div,其中包含您要显示的内容(而不是将用户导航到其他页面)。

这涉及使用ajax和(优选的)Asp.Net Web Api。如果您对Ajax和Jquery有一些经验,那么完成此任务不需要太多时间。

我推荐以下资源用于使用Ajax和Web Api上传文件:

http://www.codeproject.com/Articles/806075/File-Upload-using-jQuery-AJAX-in-ASP-NET-Web-API

希望这有帮助!