我正在开发一个Web(使用asp.net和c#),它具有来自asp.net的FileUpload控件。上传的东西很完美,据我所知,我无法使用asp.net的FileUpload控件显示进度数据(%,传输的字节数,上传速度,已用时间,剩余时间,进度条),因为它不是异步的
我在互联网上搜索了很多(真的)并且我没有找到我正在寻找的东西而且由于我不确定太多信息已经成为一个很大的混乱关于我必须使用的东西。
在我的网页上,我有一个名为" UploadFile.aspx"它有一个FileUpload控件和一个处理上传的按钮。在代码隐藏(UploadFile.aspx.cs)我有所有服务器端逻辑(将文件上传到特定文件夹,将有关该文件的信息存储到数据库等等),我不想改变此
我需要知道的是如何在上传文件时向用户显示进度数据?我无法使用第三方应用程序,因为这是一个重要的商业网站。如果我必须学习 javascript / jQuery / Whatever ,但实际上我有点迷失并且我不知道如何开始,那对我来说不是问题。
感谢您的时间和帮助。
答案 0 :(得分:1)
那里有一些非常酷的解决方案。当然,您可以编写自己的代码,但我建议使用像Plupload这样的jQuery插件。如果您需要帮助进行设置,可以阅读他们的documentation。
答案 1 :(得分:1)
网上有很多演示代码可以在c#中显示带文件上传控制的进度条,其中大多数在本地系统上工作正常,但从不在实时服务器上工作,因为你不能使用一个FileUpload控件,用于执行您的操作。当用户POST文件时,您必须将其视为查询字符串参数。它作为一个Http请求。如果你想要一个进度条,你会想要查看可以异步与服务器交互的东西。
答案 2 :(得分:0)
如果您不想使用任何依赖Flash / Html 5的第三方,请看一下这篇文章:
http://vanacosmin.ro/Articles/Read/AjaxFileUpload
这是可能的(如果你使用的是.NET 4.5 GetBufferedInputStream会让你的生活更轻松),但这并不容易,你会看到。
基本上,如果您希望文件上传的进度条与每个浏览器完全兼容,您需要处理此服务器端并提供一个URL,客户端(浏览器)可以定期检查ajax的进度。< / p>